无法捕获托管代码中的本机异常

Dor*_*nBM 17 .net c# exception-handling

我有一个混合的.NET和本机代码控制台应用程序.由于Visual C RunTime Library致命错误,应用程序进程终止.即使我使用以下内容,托管代码也不会捕获本机异常:

  1. 尝试/捕获块
  2. AppDomain.UnHandledExption += ...
  3. RuntimeCompatibilityAttribute(WrapNonExceptionThrows = true)在AssmblyInfo文件中标记.

我还可以做些什么?

M A*_*ifi 21

.NET 4中的本机异常已更改,因此无法使用标准catch块捕获它们.您必须特别标记抛出异常的函数,[HandleProcessCorruptedStateExceptions]以便能够捕获它.

更多信息,请访问http://msdn.microsoft.com/en-us/magazine/dd419661.aspx

注意那篇文章中的注释,比如你想要正常捕捉它们而不是遵循他们执行finally块和退出的建议,添加legacyCorruptedState­­ExceptionsPolicy=true到你的配置文件中.