2009-05-27 92 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中。

相关问题