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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。