In Webform1.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
throw new Exception("test exception");
}
In the Global.asax.cs:
protected void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
if (Server.GetLastError() is HttpUnhandledException)
Server.Transfer("ErrUnknown.aspx");
}
But the Application_Error event handler never gets called. Instead I get a runtime error page.
What do I have to do have Application_Error being called after an exception is thrown?
I found the problem.
was the cause.
While trying to view 'ErrUnknown.aspx' directly in the browser I realized I had an error in that page. After correcting it Server.Transfer works
Was is misleading though is that the event doesn't get fired while debugging the application?
Anyway.
It looks fine and the Application_Error should being called.
Did you checked by
Debugging
your application?Actually you are missing
Server.ClearError()
so the exception is being passed to asp.net but you should suppress it here because you are handling it by yourself.