簡體   English   中英

自定義異常應該是檢查異常或運行時異常

[英]Custom Exception should be a checked exception or Runtime exception

我通常通過繼承'Exception'類來編寫自定義異常,這使它成為受檢查的異常。 但是,我見過人們在編寫自定義異常,該異常擴展了'RuntimeException'類,使其成為未經檢查的異常。

最佳做法是什么,何時使用?

每種方法本質上都沒有錯,這在很大程度上取決於您的用例。

話雖如此,擁有自定義異常層次結構的常見原因之一是,您能夠智能地捕獲它們並做出相應的反應,而使用運行時異常通常意味着您無意或無意捕獲它們。

對此沒有特定的規則,只需記住以下幾點:如果可以合理地期望客戶端從異常中恢復,請將其設置為已檢查的異常。 如果客戶端無法采取任何措施來從異常中恢復,請將其設置為未經檢查的異常。

Java語言使您能夠做出決定。 如果您創建的程序無法編譯,通常會使其成為受檢查的異常(盡管在大多數情況下Java會為您執行此操作,如果您不這樣做,我將需要明確地知道您要做什么。希望程序能夠編譯,這可能很復雜。 否則,您將使它成為RuntTimeException,並且再次,我們需要知道您要具體執行的操作。 以我的個人經驗,如果我要創建自定義異常,我將其簡單地設為受檢查的異常,因為用戶了解我的程序如何運行,並且(或者我了解它的運行情況足以知道何時可能出現問題)。 。 因此,我會在檢查異常的一邊犯錯,以便任何重用我的代碼的人都可以輕松理解它的工作方式以及潛在的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM