一. 異常 1.1 概念 Java程式在運行時期發生的問題就是異常。 在Java中,把異常封裝成了一個類。 當發生了某些問題時,系統會自動創建對應的異常對象並拋出該異常相關的信息。 1.2 異常的體系 Throwable Error:用於指示合理的應用程式不應該試圖捕獲的嚴重問題 Exception ...
一. 異常
1.1 概念
Java程式在運行時期發生的問題就是異常。
在Java中,把異常封裝成了一個類。
當發生了某些問題時,系統會自動創建對應的異常對象並拋出該異常相關的信息。
1.2 異常的體系
- Throwable
- Error:用於指示合理的應用程式不應該試圖捕獲的嚴重問題
- Exception:它指出了合理的應用程式想要捕獲的條件
- RuntimeException
- IndexOutOfBoundsException
- ...
- IOException
- FileNotFoundException
- ...
- ...
- RuntimeException
1.3 異常的處理
1.3.1 捕獲
1.3.1.1 格式
try{
// 需要被檢測的代碼
}
catch(異常 對象){
//發生異常後才會執行,且是立即執行
// 處理異常的代碼
}
finally{
// 一定會被執行的代碼
// 一般用於釋放資源
}
1.3.1.2 註意
1、如果有多個異常可能發生,需要將這些異常羅列在try代碼塊之後,用於進行針對性的異常處理
2、如果多個異常之間有包含關係,那麼範圍大的異常必須寫在範圍小的異常之後
3、只有使用對應的異常對象才能進行相應異常的捕獲,否則是無效
1.3.2 拋出
關鍵字:throw、throws
throws:用於方法聲明,聲明該方法的方法體中可能存在異常,需要調用者進行處理
格式:
public 返回類型 方法名() throws 異常{
}
1、已經有了捕獲處理異常,為什麼要使用throws拋出?
因為方法可能出現異常,而異常的處理是各不相同的,不應該寫死異常的處理方式,
應該告知調用者此方法存在異常,需要調用者根據它的情況進行異常的處理。
2、那麼調用者該如何處理具有異常的方法?
兩者:
第一種,繼續拋出,直到有一個調用者進行了捕獲
第二種,直接捕獲,此時調用者就無需再進行拋出
throw:用於在語句中拋出異常對象,需要調用者在調用功能時進行捕獲,
用此方法創建異常對象,可以藉助異常類中構造函數的重載對錯誤信息進行設置。
格式:
throw new 異常對象(String);
註:
1.4 異常類的常用方法
1、toString():顯示錯誤原因
2、getMessage():顯示錯誤原因和相關異常類
3、printStackTrace():直接列印錯誤原因、相關異常類、錯誤位置
1.5 自定義異常類
概念:根據項目需求,針對某些特殊情況定義的異常類。
步驟:
1、創建類繼承Exception
2、寫出預設的構造函數、重載傳參為String構造函數
3、在重載的構造函數中調用super(String)
4、在異常時拋出異常對象(throw)
5、在調用功功能時對該異常進行 捕獲