gpt4 book ai didi

c# - 无法在托管代码中捕获 native 异常

转载 作者:可可西里 更新时间:2023-11-01 03:00:39 26 4
gpt4 key购买 nike

我有一个混合的 .NET 和 native 代码控制台应用程序。应用程序进程因 Visual C 运行时库 fatal error 而终止。即使我使用以下代码,托管代码也不会捕获 native 异常:

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

我还能做什么?

最佳答案

native 异常在 .NET 4 中已更改,因此无法使用标准 catch block 捕获它们。您特别必须将抛出异常的函数标记为 [HandleProcessCorruptedStateExceptions] 才能捕获它。

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

注意那篇文章中的注释,如果您想正常捕获它们而不是听从他们执行 finally block 并退出的建议,请将 legacyCorruptedStateExceptionsPolicy=true 添加到您的配置文件中.

关于c# - 无法在托管代码中捕获 native 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10517199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com