C#学习教程:尽量不要在DllImport函数中捕获异常externintFillSlist(outstringslist);然后尝试{FillSlist(outslist);}catch{}C++DLL受第三方工具保护,因此在FillSlist实际执行之前执行了一些代码。当执行第三方代码并且程序完全停止工作时,会发生一些非常糟糕的事情。“尝试”既不隔离问题也不执行“AppDomain.CurrentDomain.UnhandledException”。是否有助于将C++函数的崩溃与C#调用代码隔离开来?这是在CLR4.0上运行吗?如果是这样...如果异常未如代码所示在打开的catch块中捕获,那是因为CLR认为它是损坏的状态异常并且默认情况下不由用户代码处理。相反,它传播并导致进程终止。这样做是因为这些类型的异常没有托管代码可以采取的措施来纠正问题。唯一可行的解??决方案是终止进程。您可以通过向该方法添加HandledCorruptedStateException属性来覆盖此行为。但总的来说这是个坏主意。更多详细信息如果不是,则程序可能只是在本机代码中崩溃并且执行从未正确返回到托管代码。以上就是C#学习教程:尽量不要把DllImport函数中exception共享的所有内容全部捕获。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
