異常的處理規則
成功的異常處理應該實現如下4個目標:
- 使程序代碼混亂最小化
- 捕獲並保留診斷信息
- 通知合適的人員
- 採用合適的方式結束異常活動
不要過度使用異常
- 把異常和普通錯誤混淆在一起,不再編寫任何錯誤處理代碼,而是以簡單地拋出異常來代替所有的錯誤處理
- 使用異常處理來代替流程控制
異常只應該用於處理非正常的情況,不要使用異常處理來代替正常的流程控制,對於一些完全可預知,而且處理方式清楚的錯誤,程序應該提供相應的錯誤處理代碼,而不是將其籠統的成爲異常
不要使用過於龐大的try代碼塊
避免使用Catch All語句
Catch All 語句指的是一種異常捕獲模塊,它可以處理程序發生的所有可能異常,但存在亮點不足:
- 所有的異常都採用相同的處理方式,這將導致無法對不同的異常分情況處理,如果要分情況處理,則需要在catch代碼塊中使用分支語句進行控制,得不償失
- 這種捕獲方式可能將程序中的錯誤、Runtime異常等可能導致程序終止的情況全部捕獲到,從而“壓制”了異常,如果出現了一些“關鍵”異常,那麼此異常也會被“靜悄悄”的忽略了