Application level error handling in ASP .Net

Application level error handling allow to detect or handle web application level error handling so that its helps to handle and solve the particular error.

Application level error handling can be done in  2 ways:
1. Add an Application_Error event handler to the global asax file for your web application
2. Add a <customErrors> element in web.config file for your web application.
1. Application_Error Event handler(Using first way)
 
Code in .aspx file 
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="page1].aspx.cs" Inherits="page1_" %>  
  2.   
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  4. <script runat="server">  
  5.     //btn1 click event and we want to transer to page welcome.aspx which  
  6.     //is does not exists but we want to check error so i assumed that i taken  
  7.     //welcome.aspx which is not in application you can specify any other file name  
  8.     //which is not in your applciaiotn  
  9.     protected void btn1_click(object s, EventArgs e)  
  10.     {  
  11.         Server.Transfer("welcome.aspx");  
  12.     }  
  13. </script>  
  14. <html xmlns="http://www.w3.org/1999/xhtml">  
  15. <head runat="server">  
  16.     <title>GLOBAL ASAX</title>  
  17. </head>  
  18. <body>  
  19.     <form id="form1" runat="server">  
  20.         taken a button on which when client clicks  
  21.         <asp:Button ID="btn1" runat="server" Text="Click here to check" OnClick="btn1_click" />  
  22.     </form>  
  23. </body>  
  24. </html>  
After that add Global.asax file and place code showing below: 
  1. <%@ Application Language="C#" %>  
  2. <script runat="server">  
  3.     void Application_Start(object sender, EventArgs e)  
  4.     {  
  5.         // Code that runs on application startup  
  6.     }  
  7.     void Application_End(object sender, EventArgs e)  
  8.     {  
  9.         //  Code that runs on application shutdown  
  10.     }  
  11.     //Application_Error event handler to handle the error in web application  
  12.     //and placed code to get error message  
  13.     void Application_Error(object sender, EventArgs e)  
  14.     {  
  15.         // Code that runs when an unhandled error occurs  
  16.         //Server.GetLastError().Message gets detailed error message and we can also  
  17.         //short the error by using Server.ClearError() function to get only  
  18.         //Error message not detailed error mesage  
  19.         Response.Write(Server.GetLastError().Message);  
  20.         Server.ClearError();  
  21.     }  
  22.     void Session_Start(object sender, EventArgs e)  
  23.     {  
  24.         // Code that runs when a new session is started  
  25.     }  
  26.     void Session_End(object sender, EventArgs e)  
  27.     {  
  28.         // Code that runs when a session ends.   
  29.         // Note: The Session_End event is raised only when the sessionstate mode  
  30.         // is set to InProc in the Web.config file. If session mode is set to StateServer   
  31.         // or SQLServer, the event is not raised.  
  32.     }  
  33. </script>  
 
2. <customErrors element in web.config file(Second way)

Code in aspx page will be same as shown above in aspx file....
now add web.config file in your application and place code shown below:
  1. <?xml version="1.0"?>  
  2. <configuration>  
  3.   <appSettings/>  
  4.   <connectionStrings/>  
  5.   <system.web>  
  6.     <!--in customerros element there is a attribute which have 3 mode-->  
  7.     <!--first is OFF which it shows a standard micrsoft asp .net error page will be shown when a error occures-->  
  8.     <!--Second is RemoteOnly in that case custom error page will not apply to visitors logged on locally  
  9.         at the web server itself.and its useful for developers as well for administrator for troubleshooting-->  
  10.     <!--In defaultRedirect attribute you specify custom error page that will display when any error occures i taken  
  11.         Error.htm so that if any error occure this htm page get invoked-->  
  12.     <customErrors defaultRedirect="Error.htm" mode="On"/>  
  13.     <compilation debug="false" />  
  14.     <authentication mode="Windows" />  
  15.   </system.web>  
  16. </configuration>  
Code in HTML file for Custom Error
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4.     <title>Error on Page</title>  
  5. </head>  
  6. <body bgcolor="white">  
  7.     <font color="red">Error while processing</font>  
  8. </body>  
  9. </html>  
This html page get shown in case of error
Note:
 
If you add both web.config as well Global.asax file then Global.aspx will handle your error not web.config