??????? 盡管這條建議看上去是顯而易見的,但是它卻常常被違反,因而值得再次提出來,當API的設計者聲明一個方法將拋出某個異常的時候,他們等于正在試圖說明某些事情。所以,請不要忽略它!要忽略一個異常非常容易,只需將方法調用通過try語句包圍起來,并包含一個空的catch塊:
// Empty catch block Ignores exception - Highly suspect!
try {
???? 。。。
}catch (SomeException e) {
}
?????? 空的catch塊會使異常達不到應有的目的,即強迫你處理導常的情況。忽略異常就如同忽略火警信號一樣——若把火警信號器關掉了,當真正的火災發生時,就沒有人能看到火警信號了。或許你會僥幸逃過劫難,或許結果將是災難性的。每當見到空的catch塊時,應該警鐘長鳴,至少,catch塊也應該包含一條說明,解釋為什么可以忽略這個異常。
??????? 有一種情形可以忽略樣常,即關閉FileInputStream的時候。因為你還沒有改變文件的狀態,因此不必執行任何恢復動作。并目已經從文件中讀取到所需要的信息,因此不必終止正在進行的操作。即使在這種情況下,把異常記錄下來還是明智的做法,因為如果這些異常經常發生.你就可以調査異常的原因。
??????? 本條目中的建議同樣適用于受檢異常和未受檢的異常,不管異常代表了可預見的異常條件,還是編程錯誤,用空的catch塊忽略它,將會導致程序在遇到錯誤的情況下悄然地執行下去。然后,有可能在將來的某個點上,當程序不能再容忍與錯誤源明顯相關的問題時,它就會頭失敗。正確地處理異常能夠徹底挽回失敗。只要將異常傳播給外界,至少會導致程序迅速地失敗,從而保留了有助于調試該失敗條件的信息。
電子卷宗中代碼:
1、catch中有打印日志,只打印了失敗信息,未打印異常詳細信息