標籤:自動 throwable dex 處理 參數 family man color 簡單
java異常體系
|——Throwable 實作類別描述java的錯誤和異常 一般交由硬體處理
|——Error(錯誤)一般不通過代碼去處理,一般由硬體保護
|——Exception(異常)
|——RuntimeException(運行時異常)
|——非運行時異常
多個try-catch語句聯用時的順序
1、順序執行,從上到下,有一個catch子句匹配之後,後面的自動不在執行
2、如果多個cach內的異常有父子類的關係
一定要,子類異常在上,父類異常在下
自訂異常類型
一般都是提供兩個構造參數,一個無參一個有參數,有參數的一般是調用父類的有參建構函式,調用形式super(message)
運行時異常
RuntimeException
|——ClassCastException多態中可以使用instanceof 進行規避
|——ArithmeticException進行if判斷,吐過除數為0進行return
|——NullPointerException進行if判斷是否為null
|——ArrayIndexOutBondsExcetion使用數組length屬性以避免數組越界。
在後面我們異常處理的時候,經常把捕獲的一場裝華為運行時異常拋出,尤其是寫一些函數架構時。throw new RuntimeException(e);
非運行時異(受檢異常) 這些異常必須做出try-catch不然編譯器無法通過 注意事項
1、子類覆蓋父類的方法時,父類方法拋出異常,子類的覆蓋方法可以不拋出異常或者拋出父類方法相同的異常,或者拋出父類方法異常的子類。
2、父類方法拋出了多個異常,子類覆蓋方法時,只能拋出父類異常的子集
3、父類沒有拋出異常,子類不能拋出異常。子類發生非運行時異常時,需要進行try-catch處理
4、子類不能比父類拋出更多的異常。
凡事應當向父類看齊,父類已有就應當向分類看齊。
finally塊 一般用於釋放資源 無論程式正常與否都執行finally塊
1.只有一種情況,jvm退出了System.exit(0)這時候不會執行finally的內容
2、return語句也無法阻止finally的執行
(3)簡單說說java中的異常體系