【轉】Winform程序未捕獲異常解決方法 EventType clr20r3 P1


from:http://blog.csdn.net/chichaodechao/article/details/8294922

    在開發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 有兩個屬性,一個是ExceptionObject,這個屬性返回為截獲異常的對象實例。還有一個屬性是IsTerminating,這個屬性告訴我們這個異常是否會導致應用終止。

    這里需要說明的是,對於.Net1.1  .Net2.0及以上,情況是不一樣的,.Net1.1 只有在主線程中的未捕獲異常才會終止應用程序,而.Net2.0及以上版本則是始終終止應用程序。

      在主窗體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

 

 

 

 

走向地獄的途中,不小心走了程序員這條路,路上一個個黑心的老板,和暗無天日的加班,我才發現,通往地獄的路徑中,我們這行是最短的。

 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM