首頁 > 軟體

java自定義異常類

2021-05-28 15:31:38

前幾天我介紹了java異常處理機制。介紹了異常類的作用、處理異常的兩種方式以及使用場景。在本章中,我將介紹如何定義自己的異常類。

想要自定義異常類,我們首先可以看看jdk是怎樣做的。以我們熟悉的運行時異常類RuntimeException為例:

我們看到jdk自帶的運行時異常類繼承了Exception類。再來看看之前介紹過的空指針異常:

我們發現空指針異常NullPointException類繼承了運行時異常RuntimeException類。由此得出,如果我們要自定義一個異常類,我們也需要繼承一個Exception類。那麼我們繼承哪個類呢?

從使用場景來分析,我們之所以自定義異常是為了讓異常類更加契合我們的使用場景。一般來說我們通常使用if語句判斷業務的條件是否ok,如果條件達成,就執行業務;如果不ok,繼續判斷下一個分支。如果所有條件都不ok,我們就會返回一個錯誤資訊給呼叫者。如果我們將錯誤資訊封裝到異常物件裡面拋出,在程式的最上層再使用try-catch程式碼塊捕獲該異常,就可以拿到異常訊息返給呼叫者。由於是在程式運行過程中由我們主動拋出的異常,所以這種異常是一種運行時異常。

所以,建議自定義異常時繼承運行時異常RuntimeException。參考上圖的空指針異常,我們可以很方便地創建自己的異常類。如圖是我自己創建的自定義異常類:

我們運行程式後發現自定義的異常已經生效了,同時由於我們自定義異常類的構造器方法,所以我們可以在構造器方法裡面處理一些程式報錯時的邏輯。

異常類實際上也是一個類,也可以加入我們想要加上的一些屬性來幫我們更好地處理異常。比如我需要返回一個錯誤碼,很簡單,我們只需要給我們的異常類新增一個表示錯誤碼的屬性,並在有參構造方法裡面給該屬性賦值即可:

以上就是本節的全部內容了。如果各位小夥伴有疑問,歡迎留言交流探討。


IT145.com E-mail:sddin#qq.com