Na minha busca para sair um pouco do Windows Forms e aprender mais sobre ASP.net, descobri uma coisa que parece ser extremamente básica mas que não tinha idéia: Response.Redirect() sempre vai gerar uma exceção.
É meio estranho mas a explicação é simples. Uma chamada a Response.Redirect internamente chama Response.End, já que, teoricamente, como a página está sendo redirecionada, a execução do código termina. Mas como provavelmente ainda vai haver código para ser executado, o sistema vai lançar uma ThreadAbortException, pois a thread foi abortada.
A solução é ainda mais simples. Existe uma sobrecarga deste método que evita que o Response.End seja chamado. Sendo assim, Response.Redirect(link, false) resolveu meu problema. O segundo parâmetro, boleano, evita que a thread seja terminada.





No Comments Yet