2010-01-05 66 views

回答

7

Errors應該以編程方式識別不可恢復的問題(例如,內存不足)。 Exceptions應該識別由代碼外部的意外情況(例如數據庫關閉)導致的編程式可恢復問題。 RuntimeExceptions應該確定由代碼流中的錯誤導致的編程式可恢復問題(請閱讀:開發人員的錯誤,例如空指針,非法參數等)。

在你的情況下,你想從RuntimeException繼承。

1

我認爲的JavaDoc樣的說這一切:

ErrorThrowable一個子類*是 表示的嚴重問題 合理應用*不應 努力趕上。大多數此類錯誤是 異常情況。 *本 ThreadDeath錯誤,雖然 一個「正常」的情況下,*也是Error一個 子類,因爲 大多數應用程序*不應該嘗試 抓住它。

這些都是像stackoverflow,內存不足......你想擴展RuntimeException。

1

總是使用RuntimeException - 我幾乎從未見過錯誤的情況。

我已經聽到了關於創建自己的異常的同樣的事情,但我並不真正瞭解它。通常它很有用,但我使用InvalidArgumentException。

+0

爲什麼不創建我自己的異常? 當我寫一個catch塊時,我希望它處理一種特定的異常,不是嗎? – snakile 2010-01-05 18:15:22

+0

來自其Javadoc:*「這個異常是爲** JCA/JCE引擎類**使用而設計的,當一個無效參數傳遞給一個方法時會引發這個異常。」*。難道你不是指'IllegalArgumentException'更通用? – BalusC 2010-01-05 23:21:22

+0

是的,我喜歡。廢話。我只是沒有想到。我會回去修復它。 – 2010-01-06 17:29:32

1

RuntimeException是一種特殊的異常,編譯器無法捕捉的異常。錯誤是在存在嚴重系統問題時引發的。 Error和RuntimeException之間沒有緊密的關係。你看起來更接近RuntimeException。