Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 为什么UnhandledExceptionEventArgs.ExceptionObject是对象而不是异常?_.net_Exception_Exception Handling_Unhandled Exception - Fatal编程技术网

.net 为什么UnhandledExceptionEventArgs.ExceptionObject是对象而不是异常?

.net 为什么UnhandledExceptionEventArgs.ExceptionObject是对象而不是异常?,.net,exception,exception-handling,unhandled-exception,.net,Exception,Exception Handling,Unhandled Exception,为什么未处理的ExceptionEventTargets.ExceptionObject是对象而不是异常 我正在附加到AppDomain。未处理的异常 我想将未处理的ExceptionEventTargets.ExceptionObject强制转换为异常并对其进行互操作 考虑到这一点,它会是空的吗 这个方法不是很有用 获取未处理的异常对象 无法将其类型化为异常,因为可以在.Net中抛出不是从System.Exception派生的对象。这在C#或VB.Net中是不可能的,但在其他基于CLR的语言中

为什么
未处理的ExceptionEventTargets.ExceptionObject
是对象而不是
异常

我正在附加到AppDomain。未处理的异常

我想将
未处理的ExceptionEventTargets.ExceptionObject
强制转换为
异常
并对其进行互操作

考虑到这一点,它会是空的吗

这个方法不是很有用

获取未处理的异常对象


无法将其类型化为异常,因为可以在.Net中抛出不是从System.Exception派生的对象。这在C#或VB.Net中是不可能的,但在其他基于CLR的语言中也是可能的。因此,API必须支持这种可能性并使用类型对象

因此,虽然它不应该为null,但实际上可能不是System.Exception


有关更多详细信息,请参见CLI规范第10.5节(特别是CLS规则40)

除了Jared已经提到的内容之外,如果
RuntimeCompatibilityAttribute(WrapnoneExceptionThrows=true)
已应用于程序集,则可以安全地强制转换到.NET Framework 2.0及更高版本中的
异常(将由C#和VB编译器自动添加)


应用此属性后,非异常“异常”将被包装在
RuntimeWrappedException

中,谢谢Jared,我在这里添加了您的答案和指向msdn社区内容的链接,因此在C中将其强制转换为Exception不会有问题?对吗?@MubasharAhmad如果类型不是从
系统派生的,则可能会有问题。Exception
。异常可能是由“否”导致的n-CLI兼容语言,决定抛出一个
System.Int32
。较新版本的CLR将自动将其包装在
System.Exception
中,但这是一个可以disabled@MubasharAhmad我建议您使用“as”强制转换,以便在对象不是从类型Exception派生的情况下,强制转换dEFAULT为null,而不是引发异常。那么为什么
try catch
block不允许捕获非异常对象?感谢您提供的信息;我是手动处理的,即,如果未能引发异常,则将其包装在RuntimeWrappedException中。