Does Response.Redirect() cause the currently running method to abort? Or does code after Response.Redirect() execute also?
(That is, is it necessary to return/Exit Sub after a Response.Redirect?)
Response.Redirect
has an overload accepting a boolean argument that indicates if the call to Response.Redirect
should end the response. Calling the overload without this argument is the same as specifying true
to indicate that the response should end.
Ending the reponse means that Response.End
is called after the response has been modified to make the redirect happen, and Response.End
throws an ThreadAbortException
to terminate the current module.
Any code after a call to Response.Redirect
is never called (unless you supply false
for the extra argument). Actually, code in finally
and certain catch
handlers will execute, but you cannot swallow a ThreadAbortException
.