正確地使用Checked Exception

2021-08-16 22:44:51 字數 1162 閱讀 3179

**

正確地使用checked  exception

實際上,如何正確地使用checked exception已經在前面的各章節講解中進行了詳細地說明。在這裡我們再次做乙個總結,同時也用來加深一下印象。

從api編寫者的角度來講,他所需要考慮的就是在何時使用乙個checked exception。

首先,checked exception應當只在異常情況對於api以及api的使用者都無法避免的情況下被使用。例如在開啟乙個檔案的時候,api以及api的使用者都沒有辦法保證該檔案一定存在。反過來,在通過索引訪問資料的時候,如果api的使用者對引數index傳入的是-1,那麼這就是乙個**上的錯誤,是完全可以避免的。因此對於index引數值不對的情況,我們應該使用unchecked exception。

其次,checked exception不應該被廣泛呼叫的api所丟擲。這一方面是基於**整潔性的考慮,另一方面則是因為checked exception本身的實際意義是api以及api的使用者都無法避免的情況。如果乙個應用有太多處這種「無法避免的異常」,那麼這個程式是否擁有足夠的質量也是乙個很值得考慮的問題。而就api提供者而言,在乙個主要的被廣泛使用的功能上丟擲這種異常,也是對其自身api的一種否定。

再次,乙個checked exception應該有明確的意義。這種明確意義的標準則是需要讓api使用者能夠看到這個checked exception所對應的異常類,該異常類所包含的各個域,並閱讀相應的api文件以後就能夠了解到底**出現了問題,進而向使用者提供準確的有關該異常的解釋。

1

public

void

readpreference() catch

(filenotfoundexception exception) 」 preferencefile);

7throw8}

9……10 }

1

try catch

4logger.log(exception.getlevel(), exception.getmessage(), exception);5//

將exception內部記錄的資訊顯示給使用者(或新增到請求的響應中返回)6//

如showwarningmessage(exception.getmessage());

7 }

正確地啟動hadoop

環境 ubuntu16.04系統 64位 apache hive 3.0.0 bin spark 2.3.1 bin hadoop2.7 scala2.11 hosts配置 etc hosts中注意hostname不要和127.0.0.1繫結 219.223.207.228 ubuntu 127.0...

荀子 怎樣正確地做事?

凡觀物有疑,中心不定,則外物不清。吾慮不清,未可定然否也。凡是觀察事物不明白,心中不能肯定,那麼對外物就審查不清楚,理解就不清晰,那麼就不可能確定是對還是錯。冥冥而行者,見寢石以為伏虎也,見植林以為後人也 冥冥蔽其明也。醉者越百步之溝,以為蹞步之澮也 俯而出城門,以為小之閨也 酒亂其神也。厭目而視者...

如何正確地在MDK中使用關鍵

筆者在做移植時,將embest ide環境下的例程移到realview mdk的過程中,曾經遇到這樣乙個問題 在生成工程時,編譯全部通過,但在鏈結時提示許多符號未定義!如果讀者也遇到過這個問題,請繼續看下去,如果鏈結時提示未定義的變數是一些內聯函式 即使用了關鍵字 inline 那麼就是筆者遇到的問...