Asp.Net 异常处理机制

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

原文地址:https://www.cnblogs.com/null2/p/3657751.html