簡體   English   中英

創建自己的自定義異常有哪些最佳做法?

[英]What are some best practices for creating my own custom exception?

在前一個關於異常的問題的后續內容中,在.NET中創建自定義異常的最佳實踐是什么?

更具體地說,您應該繼承System.Exception,System.ApplicationException還是其他一些基本異常?

在C#IDE中,鍵入“exception”並單擊TAB。 這將擴展為您開始編寫新的異常類型。 有評論鏈接到一些異常實踐的討論。

就個人而言,我是創建大量小類的忠實粉絲,其范圍擴展到異常類型。 例如,在編寫Foo類時,我可以選擇:

  1. throw new Exception("Bar happened in Foo");
  2. throw new FooException("Bar happened");
  3. throw new FooBarException();

哪里

class FooException : Exception 
{
    public FooException(string message) ... 
}

class FooBarException : FooException 
{
    public FooBarException() 
        : base ("Bar happened") 
    {
    }
}

我更喜歡第三種選擇,因為我認為它是一種OO解決方案。

System.Exception繼承。 System.ApplicationException沒用,設計指南說“ 不要拋出或派生自System.ApplicationException

http://blogs.msdn.com/kcwalina/archive/2006/06/23/644822.aspx

有一個代碼片段。 用那個。 另外,之后檢查您的代碼分析; 片段遺漏了您應該實現的構造函數之一。

我認為在處理任何級別的異常(進行自定義,拋出,捕獲)時要記住的最重要的事情是異常僅適用於特殊情況。

所有其他異常繼承的基本異常是System.Exception,這是你應該繼承的,除非你當然可以使用更具體的異常的默認消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM