C# 中与 CLI 包装器通信C++未处理的异常

Unhandled exception in C# talking to C++ CLI Wrapper

本文关键字:C++ 未处理 异常 通信 中与 CLI 包装      更新时间:2023-10-16

我们有一个 C# 应用程序,它在 C++ CLI 包装器 DLL 中调用许多方法;这反过来又调用了我们无权访问的第三方 DLL 中的许多非托管函数。

C# 中的代码块是 100% 位于 try、Catch(异常 e) 块中,但我们刚刚弹出了一个未处理的异常。

查看服务器上的事件日志,堆栈跟踪的最后一部分是包装器应用程序上的方法。

在我们的应用程序中没有线程或类似的东西,所以我只能假设第三方 DLL 中发生了导致问题的事情。

如何构建它以便处理所有异常?

更新:引发的异常是 System.AccessViolationException

根据Johan分享的链接:

访问违规异常和尝试/捕获块

从 .NET 开始框架 4,访问违规由公共引发的异常异常语言运行时不由结构化异常处理程序(如果异常发生在公共语言运行库保留的内存。要处理这样的访问违规异常异常,您应该应用句柄进程损坏状态异常方法的属性其中引发异常。