首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Effective C# 原則 44:建立應用程式專屬例外類別 (下)

     編輯:關於C語言

捕捉例外型別優於解析堆疊框架

根據 e.TargetSite.Name 切換處理邏輯極其脆弱:重命名方法、移動程式碼、更深層堆疊皆會破壞。應建立專屬例外類別,讓呼叫端以 catch 區塊處理不同錯誤情境。

兩項原則聲明

  1. 不為所有錯誤建立例外:僅對未立即處理會惡化的錯誤(如資料完整性)拋出例外;輕微錯誤(如視窗位置儲存失敗)回傳錯誤碼即可。
  2. 建立多樣化例外類別而非僅用 Exception:提供豐富資訊讓呼叫端能精準恢復。

依據恢復行為設計例外階層

分析錯誤條件,可歸類為同一恢復行為者共用一個例外類別。例如:檔案/目錄遺失、權限不足、網路資源遺失,各自對應不同恢復機制,應建立不同例外類別。

正確繼承 ApplicationException

自訂例外應繼承 System.ApplicationException 而非 Exception。需實作四個建構子並委派基類:


public class MyAssemblyException : ApplicationException
{
    public MyAssemblyException() : base() { }
    public MyAssemblyException(string s) : base(s) { }
    public MyAssemblyException(string s, Exception e) : base(s, e) { }
    protected MyAssemblyException(SerializationInfo info, StreamingContext ctx) : base(info, ctx) { }
}

不同情境呼叫不同建構子,確保例外資訊完整傳遞。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved