構建健壯 Java 應用需遵循系統化異常處理規範。本文從定義、拋出、記錄、處理四個維度,提煉出簡單可落地的核心原則。
異常定義原則
- 為應用定制異常體系,反映業務錯誤語義
- 各層定義統一接口異常,屏蔽實現細節變更影響
- 統一錯誤碼,支持國際化與統一異常處理框架
異常拋出原則
- 不可恢復/致命錯誤 → Unchecked Exception (RuntimeException)
- 可恢復/可處理錯誤 → Checked Exception
- 方法簽名需文檔化說明可能拋出的 Unchecked 異常
- 異常信息包含:失敗操作、關鍵參數、可能恢復建議
異常記錄原則
- 首次產生處記錄,避免重複日誌
- 無法處理只封裝轉拋 → 不再記錄
- 可正確處理的異常 → 無需記錄
- 捕獲未記錄/外部系統異常 → 必須記錄完整信息
- 統一異常記錄類,注入應用上下文(請求ID、用戶等)
異常處理原則
- 捕獲順序:子類 → 父類,分級處理
try 塊最小化,僅包含可能拋異常語句
- 調用拋 Unchecked 異常的方法時,用
try-finally 保證資源釋放
- Checked 異常遵循
try-catch-finally 完整模式
核心口訣
定制分層,語義優先;
可恢復查,不可恢復運;
源頭記錄,不重不漏;
精準捕獲,資源必救。
統一異常策略能顯著降低系統複雜度,提升故障診斷效率,是中大型 Java 專案架構治理的基石。