程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#異常處置的一些經歷和技能

C#異常處置的一些經歷和技能

編輯:C#入門知識

C#異常處置的一些經歷和技能。本站提示廣大學習愛好者:(C#異常處置的一些經歷和技能)文章只能為提供參考,不一定能成為您想要的結果。以下是C#異常處置的一些經歷和技能正文


1、甚麼時刻該異常處置?
1)代碼最外層,如WinFrom,防止用戶看到外部異常信息用戶體驗欠好,或許形成法式瓦解。
2)碰到異常須要恢復狀況或許重試的處所。例如銜接數據庫有時掉敗了,可以有個重連機制,在Catch塊從新銜接數據庫。
3)關於一系列有能夠掉敗的義務,個中有一個義務掉敗,不想影響到其他義務。例如要上傳100張圖片,不想由於一張圖片上傳產生異常而掉敗,進而終止全部上傳義務,僅須要記載下掉敗的圖片,提示用戶重傳便可。
2、異常處置須要留意的處所
1)Catch和Finally代碼應當異常短,並且勝利率極高,防止本身又拋出一個異常。不然CLR會終止過程,防止平安破綻或許弗成預知的效果。這個相似於Windows藍屏,產生了嚴重的毛病,情願使體系弗成用。
2)Catch塊盡可能防止直接捕獲異常的基類Exception,而應當捕獲詳細的異常類。
3、異常處置的辦法和技能
1)能否能構建同一的框架處置異常,而不消手工來處置呢?
有的人能夠會問,能不克不及偷懶,在一個處所處置異常就好了。假如僅僅是記載異常體系信息,告訴到用戶,並且這些信息平日是可以缺乏一些高低文的,是可以構建統一的機制記載異常信息的。

例如:
WinFrom的Application對象自己就供給了ThreadException時光來捕獲為處置的異常

static void Main()
    {
      //注冊捕獲異常事宜
      Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
      Application.EnableVisualStyles();
      Application.SetCompatibleTextRenderingDefault(false);
      Application.Run(new Form1());
    }
    static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
    {
      Exception ex = e.Exception;
      //做一些極端簡略的記載異常信息操作
    }
又例如:
WebFrom的Global.asax自己就曾經界說了void Application_Error(object sender, EventArgs e) 來處置異常

void Application_Error(object sender, EventArgs e)
    {
      // 在湧現未處置的毛病時運轉的代碼
      Exception ex = Server.GetLastError();
      //處置完異常後消除異常
      Server.ClearError();
    }
然則許多時刻,異常處置,不只僅只是記載到了毛病信息便可以了,有時刻是須要掉敗重試或許清算資本等等,是以,僅僅靠同一構建異常處置框架是不敷靈巧的,是以可以一方面同一處置,別的一方面特別的處所可以別的處置。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved