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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步