Asp.Net 異常處理機制

chenyizh發表於2014-04-11

1、AspNet提供的基本異常處理機制

  1)<customerrors defaultredirect="Error.aspx" mode="on"/>

  2)Error.aspx CodeBehind : hlinkPreviousPage.NavigateUrl = Request["aspxerrorpath"];

    AspNet runtime獲取到異常後,將請求跳轉至Error頁面,同時aspxerrorpath傳遞前一個頁面路徑

 

2、異常處理機制設計:

  1)在Global.asax ->Application_Error()中統一捕獲異常並處理

           void Application_Error(object sender, EventArgs e){

      Exception ex = Server.GetLastError();

      ErrorHandler.ReportError(ex);

      Server.ClearError();

      Response.Redirect(string.Format("Error.aspx?aspxerrorpath={0}",Request.Url.PathAndQuery));

    }

 

3、自定義異常類,BaseException,BLLException,DALException,同時定義不同異常類的處理方式:

    1)DALException在DAL封裝後丟擲,BLL層就不要Try..Catch..Throw,直接讓Application_Error()catch該型別異常;

    2)Application_Error()中只捕獲DALException與未設定Try..Catch的異常,BLLException在CodeBehind中Try..Catch,該類異常只是告訴Users輸入正確的值;

    3)確保只在一個地方Catch一個被丟擲的異常(在CodeBehind或者Application_Error); Do not re-throw it after you catch.Throw once,Catch once.

 

原文連結:http://www.codeproject.com/Articles/155810/Back-to-the-Basics-Exception-Management-Design-Gui

 

 

相關文章