我正在加载一个dll,它会在自己内部产生一些线程。程序偶尔崩溃时会出现未处理的异常。我无法将所有库调用包装在try / catch语句中,因为异常被抛出在不同的线程上,并且我无法访问库的源来调试/修复错误的错误处理。我希望程序在发生这些异常时继续做其他事情,是否有一种优雅的方式来处理这些异常?或者我唯一能做的就是全局捕获所有异常方法?
答案 0 :(得分:1)
如果您将DLL加载到单独的应用程序域中,您应该能够隔离使用AppDomain.UnhandledException
生成的异常,但是,请注意这不是万无一失的,并且在某些情况下它仍然会占用您的处理过程也没有什么可以做的(堆栈溢出,内存不足等)。
在这种情况下,您可以做的最好的事情就是使用某种dll通信工具完全加载它们,并使用某种形式的远程处理来与该进程通信。
答案 1 :(得分:1)