簡體   English   中英

您如何判斷是否使異常檢查或未檢查?

[英]How do you judge whether to make an exception checked or unchecked?

我正在閱讀 Java 中的已檢查與未檢查異常以及何時使用它們:

底線是:如果可以合理地期望客戶端從異常中恢復,則將其設為已檢查異常。 如果客戶端無法從異常中恢復,請將其設為未經檢查的異常。

客戶端無法恢復的一個例子是除以零,他們可以恢復的東西是 FileNotFound 異常。 我還沒有看到區別。 為什么你可以捕獲一個並記錄錯誤,但不能捕獲另一個並記錄錯誤? 是什么使某些東西可以合理地恢復? 你不能在所有情況下都發現錯誤(從而恢復)嗎?

引用的意思是這樣的:如果客戶端代碼無法從問題中恢復,它需要讓異常傳播到更高層。 如果為此使用受檢異常,則需要通過所有調用層聲明受檢異常而沒有任何好處。

換個說法:如果異常預計會通過層傳播,請取消選中。 僅檢查調用者是否可以對其執行某些操作。

當檢查異常並發生異常時,很容易排查異常原因。 如果我們不使用受檢異常,就很難找出異常的原因。 檢查異常給出了預期異常的概念。

暫無
暫無

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

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