« Home | Using LINQ in String Collections » | SQL in .net Using LINQ » | Querying the DataTable in .Net » | Converting DataView into DataTable » | Deleting TFS Project »

Error Handling in .net 3.5

The Page_Error event handler provides a way to trap errors that occur at the page level. You can simply display error information (as the sample code to follow does), or you can log the event or perform some other action.

Note This example displays detailed error information in the browser only for demonstration purposes. You will want to be cautious when displaying detailed information to the end user of the application, especially when the application is running on the Internet. A more appropriate action would be to display a message to the user notifying them that an error has occurred, and then actually logging the specific error details in the event log.

This example throws a null exception, which forces an error to occur in the Page_Load event handler. Follow these steps to create the initial page that will demonstrate using the Page_Error event handler.
  1. Follow these steps to add a new file named PageEvent.aspx to your project:

    1. Open Microsoft Visual Studio .NET.
    2. In Solution Explorer, right-click the project node, point to Add, and then click Add Web Form.
    3. In the Name text box, type PageEvent.aspx, and then click Open.


  2. Add the following code to PageEvent.aspx:


void Page_Load(object sender, System.EventArgs e)
{
throw(new ArgumentNullException());
}

public void Page_Error(object sender,EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException();
string err = "Error Caught in Page_Error event" +
"Error in: " + Request.Url.ToString() +"Error Message: " + objErr.Message.ToString()+"Stack Trace:" +
objErr.StackTrace.ToString();
Response.Write(err.ToString());
Server.ClearError();
}



Note In this code sample, the AutoEventWireup attribute is not explicitly set. If you do not explicitly assign a value to the AutoEventWireup attribute, the default value true is used. If you are using Visual Studio .NET to develop your applications, the Web Form template code explicitly sets the AutoEventWireup attribute value to false. There is an important difference between the default value that ASP.NET uses, and the default value that the Visual Studio .NET template code assigns to this attribute. If the AutoEventWireup attribute value is set to false, the event handlers that are declared in the .ASPX page do not fire. This may be confusing if you do not know about this functionality.
3. From the File menu, click Save PageEvent.aspx.
4. Right-click the page, and then click View in Browser to run the page. Notice that the error is thrown and reported according to the code specifications.

Note You may notice that the code issues a call to Server.ClearError. This prevents the error from continuing to the Application_Error event handler.

In addition, you should also take note of the Inherits attribute in the @ Page directive. If Inherits is set, you must build the project before you browse to the page. If you do not build the project first, you receive the following error message:

'Project.PageEvent' is not a valid type


Using Application_Error

Labels: , , , ,

Post a Comment

Translate

About me

Narayanan
Senior Software Engineer
Microsoft Certified Professional Developer
MCPD

Chat

Visitors