2009-05-27 98 views

回答

135

這不能被輸入到異常,因爲它有可能在.Net中引發不會從System.Exception派生的對象。這在C#或VB.Net中是不可能的,但在其他基於CLR的語言中是可能的。因此API必須支持這種可能性並使用類型對象。

所以雖然它不應該是null,它實際上可能不是一個System.Exception。

見CLI規範第10.5(特別是CLS規則40)瞭解更多詳情

+3

謝謝賈裏德 我已經添加了您的答案和一個鏈接回到這裏的MSDN社區內容 – Simon 2009-05-27 01:02:05

+0

因此,將它轉換爲C#中的異常不會是一個問題?對? – 2013-11-28 00:34:43

73

除了什麼賈裏德已經提到的,你可以放心地轉換爲Exception在.NET Framework 2.0和更高是否RuntimeCompatibilityAttribute(WrapNonExceptionThrows=true)已應用於你的程序集(將被C#和VB編譯器自動添加)。

當應用此屬性時,非例外「例外」將包含在RuntimeWrappedException中。

相關問題