Using Response.Redirect(url) in Try / Catch Block

If my response to errors in a try/catch block is to redirect users to an error page, the try/catch block behaves as if there was an error when there was not. If I change it to do something else, the code works fine.

Example:

try
{
    //do this SQL server stuff
}
catch
{
   Response.Redirect(error.htm)
   //Change this to lblErr.Text = "SQL ERROR"; and the code in try works fine.
}

From another post I learned there was a boolean overload to the Response.Redirect() method. I tried both true and false and the try/catch block still behaved as if there were an error.

What's the deal?

Answers


When you Response.Redirect, that throws a ThreadAbortException. So to get the outcome you are describing you'll want to mod your code as follows:

try  
{
   // Do some cool stuff that might break
}
catch(ThreadAbortException)
{

}
catch(Exception e)
{
  // Catch other exceptions
  Response.Redirect("~/myErrorPage.aspx");
}

Need Your Help

Python ast to dot graph

python grammar abstract-syntax-tree

I'm analyzing the AST generated by python code for "fun and profit", and I would like to have something more graphical than "ast.dump" to actually see the AST generated.

Execute before confirm

javascript setinterval confirm

Is there any way to stop interval when function is on before confirm fires up?

using a class defined in a c++ dll in c# code

c# c++ dll pinvoke

I have a dll that was written in c++, I need to use this dll in my c# code. After searching I found that using P/Invoke would give me access to the function I need, but these functions are defined ...