我正在加載一個dll,它自己產生了一些線程。時不時的程序崩潰與未處理的異常。我無法將所有庫調用都包含在try/catch語句中,因爲異常會在單獨的線程上拋出,並且我無法訪問庫的源以調試/修復錯誤的錯誤處理。我希望程序在發生這些異常時繼續做其他事情,是否有一種優雅的方式來處理這些異常?或者,我能做的唯一事情就是做一個全球性的捕獲所有異常的方法嗎?如何處理外部DLL中單獨線程上的異常?
1
A
回答
1
如果您將DLL加載到單獨的應用程序域中,您應該能夠隔離由AppDomain.UnhandledException
生成的異常,但請注意,這並非萬無一失,並且在某些情況下它仍會將您的過程排除並且你無能爲力(堆棧溢出,內存不足等)。
在這種情況下,你可以做的最好的做法是將它們加載到一個單獨的進程中,完全使用某種dll通信工具並使用某種形式的遠程處理來與該進程交談。
1
相關問題
- 1. 在單獨的線程上捕獲未處理的異常
- 2. 如何處理引發外部dll的異常?
- 3. 單獨的PDO異常處理程序
- 4. DLL中的異常處理
- 5. 在全局異常處理程序中處理線程異常?
- 6. 如何處理外部/未知DynamicMethods程序集中的異常
- 7. 內部線程異常處理
- 8. 如何在ASP.NET中處理未處理的線程異常?
- 9. 多線程異常處理
- 10. Boost線程異常處理
- 11. 線程和異常處理
- 12. 線程異常處理
- 13. 如何處理單個catch塊中工作線程和主線程的異常?
- 14. 處理WCF中的線程異常
- 15. 線程中的異常處理
- 16. Breakpad異常處理程序未在Windows上的DLL中使用?
- 17. 如何處理Python的線程。線程異常?
- 18. 未處理的異常:DLL中的System.EntryPointNotFoundException
- 19. 如何處理獨立Java應用程序中的Hibernate異常
- 20. 處理單獨線程中拋出異常的最佳方法是什麼?
- 21. 如何在DLL中創建全局異常處理程序?
- 22. 單獨的AppDomain中的C#,MAF,未處理的異常管理
- 23. Python的線程未處理的異常
- 24. 如何在Python中使用單獨的線程進行異步信號處理
- 25. 如何線程的異常傳播迴應用程序異常處理程序
- 26. 如何從AsyncTask中拋出異常並在外部處理
- 27. 處理線程中的線程中止異常....?
- 28. 無法處理線程內的異常
- 29. 處理異常的Python線程池
- 30. 捕獲未處理的線程異常
如果可行,如果在單獨的線程中有未處理的異常,則w3wp.exe不會崩潰。我的託管服務提供商已經發生好幾次了...... – leppie 2013-02-15 20:31:03