[英]What are some best practices for creating my own custom exception?
在前一個關於異常的問題的后續內容中,在.NET中創建自定義異常的最佳實踐是什么?
更具體地說,您應該繼承System.Exception,System.ApplicationException還是其他一些基本異常?
在C#IDE中,鍵入“exception”並單擊TAB。 這將擴展為您開始編寫新的異常類型。 有評論鏈接到一些異常實踐的討論。
就個人而言,我是創建大量小類的忠實粉絲,其范圍擴展到異常類型。 例如,在編寫Foo類時,我可以選擇:
throw new Exception("Bar happened in Foo");
throw new FooException("Bar happened");
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.