Application_Error事件与Page_Error事件相类似,可使用他捕获发生在应用程序中的错误。由于事件发生在整个应用程序范围内,因此您可记录应用程序的错误信息或处理其他可能发生的应用程序级别的错误
ASP.NET错误处理方法Application_Error事件举例如下:
新建web程序——新建AppEvent.aspx页面——在该页面中添加如下代码:
代码如下:
<SCRIPT language=C# runat="server">
void Page_Load(object sender, System.EventArgs e)
{
throw(new ArgumentNullException());
}
</SCRIPT>
然后呢,将Application_Error事件添加到Global.asax文件中以捕获在AppEvent.aspx 页的 Page_Load 事件中引发的错误。将以下代码添加到 Global.asax 文件中:
代码如下:
protected void Application_Error(object sender, EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException(); //获取错误 keleyi.com
string err ="Error Caught in Application_Error event/n" +
"Error in:" + Request.Url.ToString() +
"/nError Message:"+ objErr.Message.ToString() +
"/nStack Trace:"+ objErr.StackTrace.ToString();
//将捕获的错误写入windows的应用程序日志中,可从事件查看器中访问应用程序日志。
System.Diagnostics.EventLog.WriteEntry("Test2", err, System.Diagnostics.EventLogEntryType.Error);
Server.ClearError(); //清除异常,其他地方不再捕获此异常。
}
保存刚才所做的操作,在 Visual Studio .NET 中,在生成菜单上,单击生成。右键单击该页,然后单击在浏览器中查看。在这种情况下该页将为空白,但是您应该注意到在事件日志中已添加了一个新项。本示例在应用程序日志中生成一个项,可从事件查看器访问应用程序日志。在记录错误之后,您可能希望将用户重定向到另一个用户友好的错误页或者根据需要执行一些其他操作,这些操作可以根据自己的需要来做。