我正在加载一个dll,它自己产生了一些线程。时不时的程序崩溃与未处理的异常。我无法将所有库调用都包含在try/catch语句中,因为异常会在单独的线程上抛出,并且我无法访问库的源以调试/修复错误的错误处理。我希望程序在发生这些异常时继续做其他事情,是否有一种优雅的方式来处理这些异常?或者,我能做的唯一事情就是做一个全球性的捕获所有异常的方法吗?如何处理外部DLL中单独线程上的异常?
1
A
回答
1
如果您将DLL加载到单独的应用程序域中,您应该能够隔离由AppDomain.UnhandledException
生成的异常,但请注意,这并非万无一失,并且在某些情况下它仍会将您的过程排除并且你无能为力(堆栈溢出,内存不足等)。
在这种情况下,你可以做的最好的做法是将它们加载到一个单独的进程中,完全使用某种dll通信工具并使用某种形式的远程处理来与该进程交谈。
1
相关问题
- 1. 在单独的线程上捕获未处理的异常
- 2. 如何处理引发外部dll的异常?
- 3. 在全局异常处理程序中处理线程异常?
- 4. 如何处理外部/未知DynamicMethods程序集中的异常
- 5. Boost线程异常处理
- 6. 处理WCF中的线程异常
- 7. 线程中的异常处理
- 8. Breakpad异常处理程序未在Windows上的DLL中使用?
- 9. 处理单独线程中抛出异常的最佳方法是什么?
- 10. 如何在DLL中创建全局异常处理程序?
- 11. 单独的AppDomain中的C#,MAF,未处理的异常管理
- 12. 无法处理线程内的异常
- 13. 处理异常的Python线程池
- 14. 捕获未处理的线程异常
- 15. 在主线程的线程中引发未处理的异常?
- 16. 如何处理BackgroundWorker线程中的异常?
- 17. 如何处理异常处理代码中的异常?
- 18. 如何在单元测试中处理后台线程中的异常?
- 19. MSVC6如何处理来自外部“C”函数的异常?
- 20. 如何捕捉外部DLL中的异常?
- 21. 如何处理由C++加载的C#DLL中的异常
- 22. 如何处理xamarin表单项目中的异常处理?
- 23. 处理来自DLL的异常
- 24. 未处理的0x10012c5d异常(highgui110.dll)
- 25. 由外部程序集处理的捕获异常
- 26. 如何处理多部分异常
- 27. std ::线程和异常处理
- 28. 多线程未处理异常
- 29. asp.net背景线程异常处理
- 30. 水线处理异常
如果可行,如果在单独的线程中有未处理的异常,则w3wp.exe不会崩溃。我的托管服务提供商已经发生好几次了...... – leppie 2013-02-15 20:31:03