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

忽然笑
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
在主線程上,您具有以下選項(xiàng):
控制臺(tái)或服務(wù)應(yīng)用程序: AppDomain.CurrentDomain.UnhandledException
WinForms應(yīng)用程序: Application.ThreadException
Web應(yīng)用程序:Global.asax的 Application_Error
對(duì)于其他線程:
輔助線程沒(méi)有未處理的異常。使用SafeThread
工作者線程:(計(jì)時(shí)器,線程池)根本沒(méi)有安全網(wǎng)!
請(qǐng)記住,這些事件不會(huì)處理異常,它們只會(huì)向應(yīng)用程序報(bào)告它們-通常在為時(shí)不晚對(duì)它們做任何有用的事情時(shí)
記錄異常很好,但是監(jiān)視應(yīng)用程序更好;-)
- 3 回答
- 0 關(guān)注
- 554 瀏覽
添加回答
舉報(bào)
0/150
提交
取消