/// <summary> /// 可以完成全局异常处理 /// </summary> /// <param></param> /// <param></param> protected void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 var error = Server.GetLastError(); var code = (error is HttpException) ? (error as HttpException).GetHttpCode() : 500; //如果不是HttpException记录错误信息 if (code != 404) { //此处邮件或日志记录错误信息 } Response.Write("出错"); Server.ClearError(); string path = Request.Path; Context.RewritePath(string.Format("~/Errors/Http{0}", code), false); IHttpHandler httpHandler = new MvcHttpHandler(); httpHandler.ProcessRequest(Context); Context.RewritePath(path, false); }
这个方法中,我们也可以得到异常信息,记录日志或是邮件通知,
同样可以根据错误码进行相应的跳转错误页面。
也可以在当前错误页面中添加额外的信息。
很是强大。
如果没有写这个方法,则利用框架封装的默认方法。当在web.config中配置了customError节点时,便是这个方法来帮忙处理。