我想知道最好的方法是“如果所有其他方法都失敗了,那就趕上它”。我的意思是,您正在處理應用程序中盡可能多的異常,但是仍然有一定的錯誤,因此我需要擁有一些可以捕獲所有未處理的異常的東西,以便我可以收集信息并將其存儲在數據庫中或提交它們到網絡服務。AppDomain.CurrentDomain.UnhandledException事件是否捕獲所有內容?即使應用程序是多線程的?旁注:Windows Vista公開了本機API函數,該函數允許任何應用程序在崩潰后恢復自身...現在想不起來的名稱...,但我寧愿不使用它,因為我們的許多用戶仍在使用Windows XP。
3 回答

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
在主線程上,您具有以下選項:
控制臺或服務應用程序: AppDomain.CurrentDomain.UnhandledException
WinForms應用程序: Application.ThreadException
Web應用程序:Global.asax的 Application_Error
對于其他線程:
輔助線程沒有未處理的異常。使用SafeThread
工作者線程:(計時器,線程池)根本沒有安全網!
請記住,這些事件不會處理異常,它們只會向應用程序報告它們-通常在為時不晚對它們做任何有用的事情時
記錄異常很好,但是監視應用程序更好;-)
- 3 回答
- 0 關注
- 259 瀏覽
添加回答
舉報
0/150
提交
取消