<< Click to Display Table of Contents >> Thread was being aborted. |
![]() ![]() ![]() |
É bastante comum vermos o seguinte erro “Thread was being aborted.” em fórums, listas e aplicações que desenvolvemos.
Há vezes em que o método Response.Redirect(“url”) é chamado dentro de um código gerenciado pelo try...catch.
O grande problema é que o método Response.Redirect(“url”) quando chamado desta forma, internamente ele invoca o método Response.End, e este por sua vez dispara a seguinte Exception: ThreadAbortException para finalizar o processamento da página corrente. Sendo assim, se o Response.Redirect estiver sendo gerenciado pelo bloco try, ele capturará a Exception, e assim, se existir o bloco Catch, será executado.
Como muitos não conhecem, existe um overload do método Response.Redirect(“url”, true|false) que além de receber a URL qual o usuário será redirecionado, recebe também um parâmetro booleano que indica se a página terá ou não o seu processamento abortado através do método Response.End. Se definirmos como False, a página é executada até o término e assim, não invocando o método Response.End, e assim o usuário é redirecionado para a nova página.
E quando não informarmos o parâmetro booleano, por default é informado como True, logo, a página será finalizada através do Response.End e assim vai atirar a Exception.
Use então
Response.Redirect(“url”, false)