winform程式未捕獲異常解決方法 EventType clr20r3 P1
在開發winform程式時,用到多執行緒,在伺服器部署後執行,老是自動關才程式,症狀描述如下:
在Windows Server 2003的作業系統上,執行.Net 2.0或者3.5的應用程式時,會發現沒有任何反應,到系統的事件檢視器裡會發現類似EventType clr20r3 P1....P2...PN的錯誤提示。
很可能的原因就是:應用程式出現了異常,而.net沒有或者無法捕捉該異常,所以導致出現如下情況:
1.程式自動關閉。
2.此時去工作管理員中會看到一個DW20.exe的程序,不久會自動消失
3.到事件檢視器裡面會發現類似EventType clr20r3 P1....P2...PN的錯誤提示。
解決方法一:.在config檔案中<configuration> <runtime> <legacyUnhandledExceptionPolicy enabled="true" /> </runtime></configuration>這樣,主程式遇到未捕獲異常不會強制關閉,但為了程式的穩定性與安全性,應該找出拋異常的地方,將其修改。
解決方法二:
用到UnhandledExceptionEventHandler事件,通過這個事件,我們可以截獲未捕獲異常,並進行處理。
這個事件的事件引數UnhandledExceptionEventArgs e
在主窗體main下,加 AppDomain.CurrentDomain.UnhandledException +=new UnhandledExceptionEventHandler(UnhandledExceptionEventHandler);
並編碼UnhandledExceptionEventHandler事件,
static void UnhandledExceptionEventHandler(object sender, UnhandledExceptionEventArgs e)
{
try
{
LogHelper.ErrorLog(e.ExceptionObject.ToString());//LogHelper是寫日誌的類,這裡,可以直接寫到檔案裡
}
catch
{
}
}
執行程式,異常捕獲,找到了問題所在,對程式碼進行改寫。
本文結束。
參考:
http://www.cnblogs.com/eaglet/archive/2009/02/17/1392191.html(重要)
http://hi.baidu.com/ymwang/blog/item/07b1b20eab9cdde537d12265.html(重要)
http://www.cnblogs.com/xclw/archive/2009/09/29/1576436.html
http://www.cnblogs.com/dudu/archive/2006/05/07/393446.html
http://hi.baidu.com/xiejl/blog/item/98743c1f161cafc1a686697e.html
http://topic.csdn.net/t/20050304/22/3825910.html
http://www.yesky.com/258/1653758.shtml
http://www.cnblogs.com/cgzwwy/archive/2008/08/31/1280597.html
走向地獄的途中,不小心走了程式設計師這條路,路上一個個黑心的老闆,和暗無天日的加班,我才發現,通往地獄的路徑中,我們這行是最短的。