我想處理(未檢查)異常的錯誤。我聽說,對於每種異常,我都應該創建一個Error或RuntimeException的子類。 有什麼區別?Java中的未經檢查的異常:從Error或RuntimeException繼承?
2
A
回答
7
Errors
應該以編程方式識別不可恢復的問題(例如,內存不足)。 Exceptions
應該識別由代碼外部的意外情況(例如數據庫關閉)導致的編程式可恢復問題。 RuntimeExceptions
應該確定由代碼流中的錯誤導致的編程式可恢復問題(請閱讀:開發人員的錯誤,例如空指針,非法參數等)。
在你的情況下,你想從RuntimeException
繼承。
1
我認爲的JavaDoc樣的說這一切:
的
Error
是Throwable
一個子類*是 表示的嚴重問題 合理應用*不應 努力趕上。大多數此類錯誤是 異常情況。 *本ThreadDeath
錯誤,雖然 一個「正常」的情況下,*也是Error
一個 子類,因爲 大多數應用程序*不應該嘗試 抓住它。
這些都是像stackoverflow,內存不足......你想擴展RuntimeException。
1
總是使用RuntimeException - 我幾乎從未見過錯誤的情況。
我已經聽到了關於創建自己的異常的同樣的事情,但我並不真正瞭解它。通常它很有用,但我使用InvalidArgumentException。
1
RuntimeException是一種特殊的異常,編譯器無法捕捉的異常。錯誤是在存在嚴重系統問題時引發的。 Error和RuntimeException之間沒有緊密的關係。你看起來更接近RuntimeException。
相關問題
- 1. 經過或未經檢查的異常
- 2. 未經檢查的異常
- 3. Transcation回滾異常繼承RuntimeException
- 4. 在java中拋出內部對象 - 未經檢查的異常
- 5. 未經檢查的異常或運行時異常之間的區別
- 6. 如何從未經檢查的異常中恢復?
- 7. Java未經檢查的異常拋出主
- 8. 爲什麼運行時異常是未經檢查的異常?
- 9. 無法從異常繼承
- 10. Java異常的繼承處理
- 11. C++ - 與Error類編譯錯誤,從性病繼承::異常
- 12. 爲什麼Clojure wrap使用未經檢查的異常來檢查異常?
- 13. 檢查VS未經檢查的異常統計
- 14. 存在異常的繼承異常
- 15. 如何決定創建一個已檢查的異常或未經檢查的異常
- 16. 繼承和異常
- 17. Python3 - 繼承異常
- 18. 錯誤與java中未經檢查的異常之間的區別?
- 19. 經過檢查異常
- 20. 檢查與未檢查的異常
- 21. Java:異常,繼承概念不清楚
- 22. 在項目中全局處理未經檢查的異常
- 23. 如何繼承RuntimeException類?
- 24. 跟蹤未檢查(或檢查?)異常丟失的位置
- 25. 在Java中調度循環任務而不停止未經檢查的異常
- 26. 捕捉異常不會從異常中繼承
- 27. 如何正確處理重要的未經檢查的異常
- 28. C++異常和性病繼承::異常
- 29. 爲什麼第4行不生成未經檢查的異常?
- 30. Java中的異常檢查main()
爲什麼不創建我自己的異常? 當我寫一個catch塊時,我希望它處理一種特定的異常,不是嗎? – snakile 2010-01-05 18:15:22
來自其Javadoc:*「這個異常是爲** JCA/JCE引擎類**使用而設計的,當一個無效參數傳遞給一個方法時會引發這個異常。」*。難道你不是指'IllegalArgumentException'更通用? – BalusC 2010-01-05 23:21:22
是的,我喜歡。廢話。我只是沒有想到。我會回去修復它。 – 2010-01-06 17:29:32