ASP.NET错误处理方法归结(方法2):Application_Error 事件

   今天来归结一下ASP.NET错误处理方法2:Application_Error 事件。举例如下:

   与 Page_Error 事件相类似,您可使用 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();  //获取错误
     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 中,在生成菜单上,单击生成。右键单击该页,然后单击在浏览器中查看。在这种情况下该页将为空白,但是您应该注意到在事件日志中已添加了一个新项。本示例在应用程序日志中生成一个项,可从事件查看器访问应用程序日志。在记录错误之后,您可能希望将用户重定向到另一个用户友好的错误页或者根据需要执行一些其他操作,这些操作可以根据自己的需要来做。

你可能感兴趣的:(ASP.NET错误处理方法归结(方法2):Application_Error 事件)