I am learning ASP.NET and was looking at QueryStrings.
One of the examples I was looking at hooks a button up to a redirect call:
protected void btnSubmit_Click(object sender, EventArgs e)
{
try
{
//throws ThreadAbortException: "Thread was being aborted"
Response.Redirect("Form2.aspx");
}
catch (Exception Ex)
{
System.Diagnostics.Debug.WriteLine(Ex.Message);
}
}
Why does it throw a ThreadAbortException here? Is that normal? Should I do something about this? Exceptions are generally not a good thing, so I was alarmed when I saw this.
This is by design. This KB article describes the behavior (also for the
Request.End()andServer.Transfer()methods).For
Response.Redirect()there exists an overload:If you pass endResponse=false, then the exception is not thrown (but the runtime will continue processing the current request).
If endResponse=true (or if you use the overload without the bool argument), the exception is thrown and the current request will immediately be terminated.