Asp.net错误->友好处理
2012-11-21 15:41
309 查看
有些错误和异常是程序员无法控制的,如:
网络不可用
服务器崩溃
服务器超负荷
客户端请求的页面不存在或者没有权限
服务器出现了不可预知的异常,而该异常没有被catch
这些导致无法为客户端正确的提供服务,做为程序员,我们有责任为用户展现友好的自定义错误页面。
学习到的三个方法。
一、webconfig中进行配置
代码
三、Page的ErrorPage属性
在页面的处理过程中,可以在任何时候设置或者获取Page.ErrorPage属性,能够通过程序的方式指定异常未被捕获时,Asp.net会将客户端重定向到那个页面。
这个有两种设置方法,一种是直接在Page属性里边设置,为某个页面设置统一的错误页面。
也可以在程序中动态的设置,假如页面中有n个button,可以为每个button设置特定的ErrorPage
该属性是和<customErrors>配置元素配合起来才会起作用。为了使Page.ErrorPage起作用,<customErrors>的mode属性必须设置为On。
在异常未被捕获的时候,如果没有设置ErrorPage,那么HttpApplication.Error事件。如果HttpApplication.Error没有订阅错误事件,那么程序会去找<customErrors>配置的元素(如果可以的话)。
优先级:ErrorPage属性,Application_Error、<customErrors>配置,如果多个错误的机制同时存在,应用程序会按照优先级找到第一个满足条件的错误机制。
网络不可用
服务器崩溃
服务器超负荷
客户端请求的页面不存在或者没有权限
服务器出现了不可预知的异常,而该异常没有被catch
这些导致无法为客户端正确的提供服务,做为程序员,我们有责任为用户展现友好的自定义错误页面。
学习到的三个方法。
一、webconfig中进行配置
代码
void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 HttpUnhandledException eHttp = this.Server.GetLastError() as HttpUnhandledException; Exception eApp = eHttp.InnerException;//可以返回异常 Response.Redirect("Default3.aspx?exe='"+Server.UrlEncode(eApp.Message)+"'"); Server.ClearError(); Response.End(); }
三、Page的ErrorPage属性
在页面的处理过程中,可以在任何时候设置或者获取Page.ErrorPage属性,能够通过程序的方式指定异常未被捕获时,Asp.net会将客户端重定向到那个页面。
这个有两种设置方法,一种是直接在Page属性里边设置,为某个页面设置统一的错误页面。
<%@ Page Language="C#" ErrorPage="~/Default2.aspx" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
也可以在程序中动态的设置,假如页面中有n个button,可以为每个button设置特定的ErrorPage
protected void btnTest_Click(object sender, EventArgs e) { this.ErrorPage = "Default2.aspx"; }
该属性是和<customErrors>配置元素配合起来才会起作用。为了使Page.ErrorPage起作用,<customErrors>的mode属性必须设置为On。
在异常未被捕获的时候,如果没有设置ErrorPage,那么HttpApplication.Error事件。如果HttpApplication.Error没有订阅错误事件,那么程序会去找<customErrors>配置的元素(如果可以的话)。
优先级:ErrorPage属性,Application_Error、<customErrors>配置,如果多个错误的机制同时存在,应用程序会按照优先级找到第一个满足条件的错误机制。
相关文章推荐
- asp.net发布到IIS中出现错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” <转>
- asp.net mvc中错误黄页的处理
- asp.net 定制简单的错误处理页面
- ASP.NET的错误处理机制
- ASP.NET错误处理
- asp.net定制错误处理页面
- ASP.NET之错误处理机制
- asp.net中自定义错误处理页面
- ASP.NET的错误处理机制
- asp.net错误处理的三种方法
- Asp.Net网站统一处理错误信息
- ASP.NET页面错误处理及邮件发送简易方案
- asp.net发布到IIS中出现错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
- ASP.NET错误处理的方式(总结)
- asp.net四种错误处理机制
- asp.net发布到IIS中出现错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” .
- 【转】asp.net发布到IIS中出现错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
- ASP.NET MVC编程——错误处理与日记
- asp.net中自定义错误处理页面
- ASP.NET4种错误处理机制