錯誤處理不應使代碼邏輯發生混亂。
處理錯誤的技巧:
- 使用異常而非返回碼
- 先寫Try-Catch-Finally語句
- 使用不可控異常
可控異常的代價違反開放/閉合原則 - 給出異常發生的環境說明
拋出的每個異常,都應當提供足夠的環境說明。以便判斷錯誤的來源和處所。 堆棧蹤跡並不能告訴你失敗操作的初衷。
應創建信息充分的錯誤消息,並和異常一起傳遞出去。消息應包括失敗的操作和失敗類型 - 依調用者需要定義異常類
我們在應用程序中定義異常類時,最重要的是考慮應該是他們如何被捕獲。 - 定義常規流程
特例模式: 創建一個類或配置一個對象,來處理特例 - 別返回null值
返回null值,不如拋出異常或返回特例對象 - 別傳遞null值
總結:
整潔代碼是可讀的,但也要強固。可讀與強固並不衝突,如果將錯誤處理隔離看待,獨立於主要邏輯之外,就能寫出強固而整潔的代碼。提高代碼的整潔度。