views:

190

answers:

4

I am writing an ASP.NET website, which is a new framework for me. I find that I have a try/catch block in literally every method of my codebehind. All these try/catch blocks do is catch the exception and then pop-up an error message to the user. Isn't there some sort of global error handler in ASP.NET? It's worth noting that my error handling is within control (ASCX) pages, and I would like a way to simply get each ASCX to handle its own errors without forcing all error handling just to a single master page or a redirect...


Thanks for advice below. I did try Page_Error as it seems a positive option. I ran a test and my exceptions do now run through Page_Error, however thing's ain't quite working... I use 'Content.ClearError()' at the end of my Page_Error, however, the client browser still ends up with an unhandled PageRequestManagerServerErrorException. Any advice? If it helps, I am using Telerik and trying to pop open a radalert whenever an error occurs...

+2  A: 

you can set the CustomErrors node in the web.config. This way whenever an exception occurs, the user is automatically redirected to a friendly error message page.

derek
A: 

I'd recommend using something like this, instead of throwing ecxceptions. It sounds like you are doing exception-based programming

if(myTextBox.Text == "foo")
{
  this.RaiseError(); // method where you tell a label or something, where you say the user that and error (though no exception!) occured
}

The thing you are looking for is the CustomError property in the web.config

<customErrors mode="On"    defaultRedirect="~/error.aspx" />

So if there is an unhandeld exception, the user gets redirect to the error.aspx

citronas
+6  A: 

You could implement the Page_Error Event handler at the page level. That sounds like the perfect fit for what you asked.

Otherwise, more globally on the application level, you may try the Application_Error Event Handler in Global.asax.

See also http://msdn.microsoft.com/en-us/library/aa479319.aspx which contains a lot of information on error handling in asp.net.

marapet
+2  A: 

Check out global.asax documentation. The global.asax file contains the global method for handling errors. When an error occurs, the Application_Error method is called. This method is a good place to handle and log errors because it is the most functional.

Dr. Noise