所有非RuntimeException的例外,統稱CheckedException
如:IOException、SQLException等以及用戶自定義例外,這種例外在編譯時就必須進行處理,否則無法通過編譯,
通常處理編譯時例外用到兩種方法:1.try/catch進行捕獲、2.使用throws宣告例外,
1.捕獲例外
捕獲例外是通過三個關鍵字類實作的:try,catch,finally
用try來執行一段程式,如果有例外,系統則拋出一個例外,可以通過他的型別來捕獲(catch)他,最后一步是通過finally陳述句為例外處理提供一個出口
無論如何,finally所指定的代碼都必須執行,catch可以有多個,finally只能有一個(finally可以不寫),
例:

2.宣告例外
在處理編譯時例外,不一定立即處理它,可以再把例外宣告(throws)出去,
在方法中使用try-catch-finally結構來處理例外,但在某些情況下,當前方法并不需要處理發生的例外
而是向上傳遞給呼叫它的方法來處理(誰呼叫誰處理),
如果一個方法中可能產生某種例外,但是并不能確定如何處理這種例外,則應根據例外規范在方法的首部宣告該方法可能拋出的例外
如果一個方法拋出多個已檢查例外,就必須在方法的首部列出所有例外逗號隔開,
例:

3.自定義例外(用的不多)
在java中,jdk提供的標準例外類可能無法滿足我們的需求,這種情況下我們可以創建自己的例外類,即自定義例外類,
自定義例外繼承Exception類或Exception類的其他子類
自定義例外類如果繼承Exception類,則為編譯時例外,必須進行捕獲或宣告,否則就繼承運行時例外類
自定義例外1應該有兩個構造方法,1.默認構造方法2.帶有詳細資訊的構造方法
例:

注:
1.要避免使用例外處理代替錯誤處理
2.處理例外不可以代替測驗
3.不要進行小粒度的例外處理,應將整個任務包裝在一個try中
4.例外往往在高層處理,(層層外拋)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/155837.html
標籤:Java
上一篇:Python面向物件的魔術方法
下一篇:SpringBoot + Vue + ElementUI 實作后臺管理系統模板 -- 后端篇(三): 整合阿里云 OSS 服務 -- 上傳、下載檔案、圖片
