ASP.NET 中对于异常的处理
2008-11-12 09:31
197 查看
在ASP.NET编程中,如何对未捕获的异常进行统一的处理(或者称为响应),有两种方式
1. 通过Global.asax文件中编写Application_Error事件
private static string LOG_SOURCE = ConfigurationManager.AppSettings["Event Log Source"]; // If an exception is thrown in the application then log it to an event log
protected void Application_Error(object sender, EventArgs e) {
Exception x = Server.GetLastError().GetBaseException();
EventLog.WriteEntry(LOG_SOURCE, x.ToString(), EventLogEntryType.Error);
} 这个事件能捕获所有未处理的异常。一般在这里进行日志的记录(如果需要的话) 2.通过配置customError元素
<customErrors defaultRedirect="Error.aspx" mode="RemoteOnly"/>
这里的mode有三个可能性:On,Off,RemoteOnly。设置为On表示不管是在本地还是在远程访问都显示详细的错误消息,而不是Redirect到我们的页面去。Off则反之。而RemoteOnly则表示只有在远程的情况下才使用自定义错误页面
这样就可以,发生错误的时候,把用户导航到一个统一的页面。我们一般不需要(也最好不要)把错误的详细信息告诉用户。
需要注意一下,如果程序是在debug模式,那么以上都会失效。
<compilation debug="true">
所以,我们规定正式发布的程序都需要把调试模式关闭,这另外一方面还可以提高性能。
1. 通过Global.asax文件中编写Application_Error事件
private static string LOG_SOURCE = ConfigurationManager.AppSettings["Event Log Source"]; // If an exception is thrown in the application then log it to an event log
protected void Application_Error(object sender, EventArgs e) {
Exception x = Server.GetLastError().GetBaseException();
EventLog.WriteEntry(LOG_SOURCE, x.ToString(), EventLogEntryType.Error);
} 这个事件能捕获所有未处理的异常。一般在这里进行日志的记录(如果需要的话) 2.通过配置customError元素
<customErrors defaultRedirect="Error.aspx" mode="RemoteOnly"/>
这里的mode有三个可能性:On,Off,RemoteOnly。设置为On表示不管是在本地还是在远程访问都显示详细的错误消息,而不是Redirect到我们的页面去。Off则反之。而RemoteOnly则表示只有在远程的情况下才使用自定义错误页面
这样就可以,发生错误的时候,把用户导航到一个统一的页面。我们一般不需要(也最好不要)把错误的详细信息告诉用户。
需要注意一下,如果程序是在debug模式,那么以上都会失效。
<compilation debug="true">
所以,我们规定正式发布的程序都需要把调试模式关闭,这另外一方面还可以提高性能。
相关文章推荐
- ASP.NET 中对于异常的处理
- Scott Mitchell 的ASP.NET 2.0数据教程之三十八:: 处理BLL和DAL的异常
- asp.net全局异常处理
- 七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL
- ASP.NET MVC 全局异常处理与异常日志
- asp.net指定页处理所有异常的几种方法
- Asp.net Web Applicatoin实现自定义HttpModule拦截异常处理
- asp.net MVC 过滤器使用案例:统一处理异常顺道精简代码
- asp.net mvc 的异常处理解决方案
- asp.net中Roles和User的异常处理机制的思考
- ASP.NET错误异常分类处理 过滤请求内容
- ASP.NET项目开发中的异常处理
- Asp.net未处理异常的2种解决方式(个人总结篇)
- ASP.NET中OutOfMemoryException异常的处理方案
- asp.net的异常处理机制讲解
- Asp.net 2.0的异常处理需要考虑的问题
- ASP.NET的异常处理
- ASP.NET中的事务处理和异常处理
- asp.net捕获全局未处理异常的几种方法[转]
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(2):处理异步调用中的异常