在Java中,try-catch
和throws
關鍵字通常一起使用,以便在方法中處理異常。try-catch
用于捕獲和處理異常,而throws
用于聲明方法可能拋出的異常類型。
以下是如何配合使用try-catch
和throws
的示例:
public class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
throws
關鍵字聲明可能拋出的異常類型:public void readFile(String fileName) throws IOException, CustomException {
// ...
}
在這個例子中,readFile
方法可能會拋出IOException
和CustomException
類型的異常。
try-catch
塊捕獲和處理異常:public void readFile(String fileName) throws IOException, CustomException {
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(fileName);
// 讀取文件的代碼
} catch (FileNotFoundException e) {
throw new CustomException("文件未找到: " + fileName);
} catch (IOException e) {
throw new IOException("讀取文件時發生錯誤: " + fileName, e);
} finally {
if (fileInputStream != null) {
try {
fileInputStream.close();
} catch (IOException e) {
System.err.println("關閉文件輸入流時發生錯誤: " + e.getMessage());
}
}
}
}
在這個例子中,我們使用try
塊嘗試打開文件并讀取內容。如果發生FileNotFoundException
,我們拋出一個自定義的CustomException
。如果發生其他IOException
,我們重新拋出異常,并附加更多詳細信息。在finally
塊中,我們確保關閉文件輸入流,如果在關閉過程中發生異常,我們捕獲并打印錯誤消息。
注意,當你在方法簽名中使用throws
關鍵字聲明異常時,調用該方法的代碼需要處理這些異常,要么使用try-catch
塊捕獲它們,要么繼續在其方法簽名中使用throws
聲明這些異常。這樣可以確保異常在調用鏈中正確傳播,直到遇到能夠處理它們的代碼。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。