You want to report and log all errors in a common location, regardless of where they arise within the application.
Incorporate the error handling in methods (described in Recipe 8.1), add code to the
Page_Error event handler to rethrow the page errors, and add the code to the
Application_Error event handler to perform the logging and redirection.
In the code-behind class for your ASP.NET pages that need to perform error handling, use the .NET language of your choice to:
Page_Error event handler.
Rethrow the page errors from within the method. (This is needed to avoid all errors being wrapped with an
In global.asax, use the .NET language of your choice to:
Application_Error event handler.
Create a detailed message and write it to the event log.
Redirect the user to the error page using
The code we’ve written to demonstrate this solution is shown in Examples 8-6, 8-7, 8-8 through 8-9. The
Page_Error code required in all pages is shown in Examples 8-6 (VB) and 8-7 (C#). The
Application_Error code required in global.asax is shown in Examples 8-8 (VB) and 8-9 (C#). (Because the .aspx file for this example contains nothing related to the error handling, it is not included here.)
The exception model in ASP.NET provides the ability for exceptions to be handled at any level, from the method level to the application level. An unhandled exception is sequentially ...