java API(2)-異常處理
阿新 • • 發佈:2018-11-11
java異常處理
什麼是異常
異常是執行時發生的錯誤,程式碼中的語法錯誤不是異常,而是編譯錯誤。
異常的層次結構
Object
Throwable
Error(jvm層的)
Exception
受檢查異常
執行時異常
java中處理異常的機制
捕獲->丟擲
處理異常的語法
try{
//語句塊,可能產生異常的語句
}catch(異常型別 e){
//處理異常
}
關於try和catch使用的注意事項
- 每個try塊可以對應多個 catch,如果catch中能捕獲異常,則進行捕獲,如果捕獲不到,則繼續向外丟擲
- 每個try塊中可以包含多行程式碼,一旦出現異常,try塊中餘下的程式碼不會執行
- 如果有多個catch塊,那麼父類的異常應該放在下方, 否則會編譯出錯。
關於finally
- 一個try塊中可以最多包含一個finally(可以沒有),並且放在try結構的最後
- 只要進行try塊,finally中的程式碼一定會被呼叫(退出jvm除外),因此我們可將一定執行的程式碼(例如釋放資源)放在finally中
- 一個try塊中至少應該對應catch或finally中的一個
異常物件可由jvm和使用者編碼來建立並丟擲:(throw 異常物件)
語法:
throw 異常物件
例:throw new ArrayIndexOutOfBoundsException(“陣列下標越界”)
throws關鍵字
throws 放在方法宣告之後,throws後面加入一個異常類;說明此方法會丟擲一個某型別的異常
異常(Exception)的分類
- 執行時異常:可以不處理
- RuntimeException及其子類
- 受檢查異常:必須處理,否則不能通過編譯
- Exception及其子類
處理異常的兩種方式
- 自行處理:通過try -catch自行解決
- 迴避處理:將異常拋給呼叫者處理,優點是呼叫者可以自己決定如何處理異常(把處理權交給呼叫者)。
自定義異常
定義一個類,繼承Exception或RuntimeException即可