天天看點

【Java程式設計進階進階】如何使用自定義類型的異常?

1. 非運作時異常(Checked Exception)

Java中凡是繼承自Exception但不是繼承自RuntimeException的類都是非運作時異常。

2. 運作時異常(Runtime Exception/Unchecked Exception)

RuntimeException類直接繼承自Exception類,稱為運作時異常。Java中所有的運作時異常都直接或間接的繼承自RuntimeException。

Java中所有的異常類都直接或間接的繼承自Exception。

一、對應非運作時異常,必須對其進行處理。處理方式有兩種:

使用try…catch…finally語句塊進行捕獲

在産生異常的方法所在的方法聲明throws Exception

二、對于運作時異常,可以不對其進行處理,也可以對其進行處理。一般情況下都不對其進行處理。

在使用Java API的方法時會産生異常,由于實際的需要,我們需要建立和使用自定義異常。使用全新的異常類,應用到系統程式中。

其實這是問題處理的模式/方式之一;

其它的是什麼?例如WindowsAPI的GetLastError,swift、Go的多傳回值 ,傳回一個實體類包含所有需要的資訊;

而這個方法同樣也有多種應用。

應用一:你的一個方法中把一些必須滿足的條件作為異常來處理;

應用二:你的一個方法中把所有可能遇到的異常都捕獲了,附加上其它資訊抛出新的異常;

應用三:以上兩種混合應用;

自定義異常類:CustomException.java

應用類Servlet:SimpleServlet.java

這裡隻是示範自定義異常的使用方式,不要糾結示範代碼的業務合理性,

如果你有更好的應用場景歡迎分享!

我這裡隻定義了一個異常類:CustomException,你也可以做如下定義,隻要你喜歡:

UserNameException,PasswordException,FileWriteException……等等。

===========文檔資訊============ 

版權聲明:非商用自由轉載-保持署名-注明出處 

署名(BY) :testcs_dn(微wx笑) 

文章出處:[無知人生,記錄點滴](http://blog.csdn.net/testcs_dn)