asp.net错误处理的三种方法
来源:互联网 发布:巴西足球知乎 编辑:程序博客网 时间:2024/06/07 18:33
asp.net错误处理的三种方法
以前有过一篇博文,主要是出错时调至错误页面,然后将当前出错的页面存入Session,然后执行刷新等操作,该机制主要用于
程序员自己控制错误,但是有些错误和异常是程序员无法控制的,比如:
?网络不可用
?服务器崩溃
?服务器超负荷
?客户端请求的页面不存在或者没有权限
?服务器出现了不可预知的异常,而该异常却没有被catch
这些错误的结果都会导致无法为客户端提供服务,作为程序员,有责任将用户请求重定向至自定义的错误页面;今天学习了
一下,做个记录:
一、<system.web>配置元素和<customErrors>配置元素
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
<customErrors>元素的defautRedirect属性指向的页面是发生错误时指向远程用户的默认页面,通过配置<error>子节点可以将
错误按照错误的类型redirect用户至特定的错误页面。
mode属性有三个,分别为:
RemoteOnly,自定义的错误页面只发送给远程用户,当在服务器本地操作时,发生错误时,程序还是会返回红条或者黄条,返回详细的错误信息;
On,不管远程客户还是服务器本地客户发生错误,都会调至自定义的错误页面;
Off,完全禁用这个错误服务,不管远程用户还是本地用户,当程序发生错误时,都会返回令人恶心的错误详细信息。
这三个属性是大小写敏感的,第一个字母必须为大写。
二、Application_Error事件
当异常未被捕获的时候,ASP.NET就会触发HttpApplication类的Error事件,可以通过Global.asax文件的Application_Error方
法来订阅该事件。
void Application_Error(objectsender, EventArgs e)
Response.Redirect("Default3.aspx?exe='"+Server.UrlEncode(eApp.Message)+"'");
Server.ClearError();
Response.End();
}
三、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(objectsender, EventArgs e){
this.ErrorPage="Default2.aspx";
]
以前有过一篇博文,主要是出错时调至错误页面,然后将当前出错的页面存入Session,然后执行刷新等操作,该机制主要用于
程序员自己控制错误,但是有些错误和异常是程序员无法控制的,比如:
?网络不可用
?服务器崩溃
?服务器超负荷
?客户端请求的页面不存在或者没有权限
?服务器出现了不可预知的异常,而该异常却没有被catch
这些错误的结果都会导致无法为客户端提供服务,作为程序员,有责任将用户请求重定向至自定义的错误页面;今天学习了
一下,做个记录:
一、<system.web>配置元素和<customErrors>配置元素
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
<customErrors>元素的defautRedirect属性指向的页面是发生错误时指向远程用户的默认页面,通过配置<error>子节点可以将
错误按照错误的类型redirect用户至特定的错误页面。
mode属性有三个,分别为:
RemoteOnly,自定义的错误页面只发送给远程用户,当在服务器本地操作时,发生错误时,程序还是会返回红条或者黄条,返回详细的错误信息;
On,不管远程客户还是服务器本地客户发生错误,都会调至自定义的错误页面;
Off,完全禁用这个错误服务,不管远程用户还是本地用户,当程序发生错误时,都会返回令人恶心的错误详细信息。
这三个属性是大小写敏感的,第一个字母必须为大写。
二、Application_Error事件
当异常未被捕获的时候,ASP.NET就会触发HttpApplication类的Error事件,可以通过Global.asax文件的Application_Error方
法来订阅该事件。
void Application_Error(objectsender, EventArgs e)
HttpUnhandledException eHttp=this.Server.GetLastError()as HttpUnhandledException;
//或者 Exception eHttp = Server.GetLastError().GetBaseException();???
Exception eApp=eHttp.InnerException;Response.Redirect("Default3.aspx?exe='"+Server.UrlEncode(eApp.Message)+"'");
Server.ClearError();
Response.End();
}
三、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(objectsender, EventArgs e){
this.ErrorPage="Default2.aspx";
]
- asp.net错误处理的三种方法
- ASP.NET错误处理的三种方式
- asp.net错误处理最好的方法
- asp.net自定义错误处理页面的几种方法
- asp.net 的错误处理
- ASP.NET调试错误方法处理
- 三种错误处理的方法
- 分享 ASP.Net 网站设置 404错误跳转到指定页面的三种方法
- .NET--ASP.NET的错误处理机制
- ASP.NET错误处理
- ASP.NET错误处理
- ASP.NET错误处理
- asp.net错误处理
- ASP.NET实现错误处理的几种方式
- ASP.NET的错误处理方式
- ASP.NET的错误处理机制
- ASP.NET的错误处理机制
- ASP.NET的错误处理机制
- 1004 大数
- Android---把用户带入另外一个应用程序(二)
- Objective-C 协议 简介 +委托的实现
- XML解析(SAX详解)
- 区分虚拟网卡与物理网卡
- asp.net错误处理的三种方法
- 得到win7 win8的桌面句柄
- C++ int,char,string,CString类型转换(整理总结)
- xCode工程的文件夹类型 folder References group
- ETL中的数据增量抽取机制研究
- 在android.app.Application中定义全局变量
- 中国排行前十的服务器供应商
- JVM组成
- ok6410 搭建嵌入式开发环境