異常
Throwable
? ? ? |
Error錯誤? Exception異常
? ? ? ? ? ? ? ? ? ? ? ? | 可以處理的
? ? ? ? ? 1.運(yùn)行時(shí)異常;
? ? ? ? ? ? ? 運(yùn)行期 ,出現(xiàn)的問題「谎牛可處理 可 不處理。
? ? ? ? ? ? ? 處理:后邊的程序不會中斷。
? ? ? ? ? ? ? RuntimeException類和 它的子類阅茶。
? ? ? ? ? 2.非運(yùn)行時(shí)異常(受檢異常)
? ? ? ? ? ? ? 編譯期,提示的異常問題谅海。必須處理脸哀。
? ? ? ? ? ? ? Exception類 和 部分子類。
----------------------------------------------
異常處理方式:
1.try-catch
try{
? 會出現(xiàn)異常的代碼扭吁;
}catch(異常類 對象){
? 處理異常撞蜂;
}
情況:
? 1.無異常出現(xiàn),try執(zhí)行侥袜,catch不執(zhí)行
? 2.異常類型匹配蝌诡,try執(zhí)行,catch執(zhí)行
? 3.異常類型不匹配枫吧,try執(zhí)行,catch不執(zhí)行浦旱。
-------------------------------------------
2.多重catch塊
try{
? 會出現(xiàn)異常的代碼;
}catch(異常類 對象){
? 處理異常九杂;
}catch(異常類 對象){
}
優(yōu)點(diǎn):對不同類型的異常進(jìn)行不同的處理颁湖。
順序:
? 1.由子類 到 父類;
? 2.由 普通 到 特殊例隆。
---------------------------------------------
3.try-catch-finally
try{
}catch(){
}finally{
? ? 一定會執(zhí)行的代碼甥捺,必須執(zhí)行的代碼;
? 通常 資源釋放
}
注:唯一一種 不執(zhí)行 finally塊的情況是镀层,System.exit(0);退出 JVM
-----------------------------------------
final,finally,finalize 區(qū)別:
final:修飾符 終態(tài)
? ? ? 類? 不能被繼承
? ? ? 方法 不能被重寫
? ? ? 變量 不能被修改镰禾,常量
finally:
? ? 異常處理,代碼一定會執(zhí)行的塊唱逢。
finalize:
? ? 方法吴侦,Object類的方法。在釋放對象之前坞古,垃圾回收此對象之前調(diào)用此方法用于資源釋放备韧。
-------------------------------------------
4.throws聲明異常
? 拋給了 調(diào)用者
? 調(diào)用者的解決方式:
? ? ? ? ? 1)throws
? ? ? ? ? 2)try - cath?
---------------------------------------------
5.throw
自己拋異常,拋的 是 受檢異常 绸贡,必須 throws盯蝴;運(yùn)行時(shí)異常毅哗,不用 throws
----------------------------------------------
6.自定義異常類
繼承 一個(gè) 系統(tǒng)異常類。
-------------------------------------
程序調(diào)試
? F5 :單步跳入(可以調(diào)試方法)
? F6 :單步跳過
步驟:
? 1.猜出錯的代碼的位置捧挺;
? 2.加斷點(diǎn)虑绵。
? 3.單步運(yùn)行;F5,F6
? 4.觀察 變量值的變化闽烙;
? 5.發(fā)現(xiàn)問題翅睛;
? 6.解決問題。