在asp.net里,不可避免的会出现一些错误,比如空引用,上传的文件大小超过maxRequestLength等等,但是有的错误可以Catch到,而有的Catch不到,比如上面提到的后者,为了处理类似后者的错误,可以在public void InitHttpModule的Init事件里,进行错误处理:
public void Init(HttpApplication app)
{
app.Error += new EventHandler(app_Error);
}
然后,
void context_Error(object sender, EventArgs e)
{
Exception err = HttpContext.Current.Server.GetLastError();
HttpContext.Current.Response.Write(err.InnerException.Message);
}
这样就把错误缓存到了Application里了。 在这之前,把web.config 文件里
<customErrors mode="On" defaultRedirect="ErrorPage.aspx">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" /></customErrors>
在ErrorPage里,就可以获取Application里刚才缓存的错误,根据Exception里的信息,给出相应的提示信息。