2010-07-20 17 views
1

可能重複:
Should I derive custom exceptions from Exception or ApplicationException in .NET?.NET中哪些類應該用作自定義異常的基類?

我發現在MSDN 2個有爭議的思考這個問題。

如果您正在設計需要創建自己異常的應用程序,請從ApplicationException類派生。

Source

對於大多數應用程序,獲得從Exception類自定義異常。

Source

此外,當我花了一些實踐的檢驗,爲70-536出現了類似的問題,併爲正確答案被標記ApplicationException的。

什麼是官方指引?

+1

http://stackoverflow.com/questions/52753/should-i-derive-custom-exceptions-from-exception-or-applicationexception-in-net – jevakallio 2010-07-20 07:44:24

+0

呀重複,我已經看到了。我可以刪除自己的問題嗎? – DixonD 2010-07-20 07:46:27

回答

6

ApplicationException是第一個推薦,但過了一段時間,MS決定只增加繼承深度而沒有提供任何優勢,因此他們將建議更改爲僅使用Exception

你可以找到一些詳細信息(包括報價解釋的理由)在這篇博客文章:http://blogs.msdn.com/b/kcwalina/archive/2006/06/23/644822.aspx

2

好問題。簡短的回答是,ApplicationException類非正式棄用/過時,由於多種原因。 (主要的一種可能是異常類型應該/不需要指示源(這就是Source屬性的用途)。

本來(.NET 1.x天,我相信)它的目的是你會得到所有的自定義(或其他自定義類)直接派生所有自定義的異常類。

1

(從正確的角度來看,我認爲)忽略了BCL異常。在我看來,例外是你最好的選擇

在我看來,還有一些我讀過的,ApplicationException是一個過度工程盡力而爲。

有更多的意見here