**
:
正確地使用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文件以後就能夠了解到底**出現了問題,進而向使用者提供準確的有關該異常的解釋。
1public
void
readpreference() catch
(filenotfoundexception exception) 」 preferencefile);
7throw8}
9……10 }
17 }try catch
4logger.log(exception.getlevel(), exception.getmessage(), exception);5//
將exception內部記錄的資訊顯示給使用者(或新增到請求的響應中返回)6//
如showwarningmessage(exception.getmessage());
正確地啟動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 那麼就是筆者遇到的問...