Thread was being aborted.

<< Click to Display Table of Contents >>

Navigation:  Outros >

Thread was being aborted.

Previous pageReturn to chapter overviewNext page

É 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)