Thread was being aborted hatası çözümü

Response.Redirect methodunu bulunduğumuz sayfadan başka bir sayfaya geçişte kullanırız. Bu methodun 2 overload'u bulunmaktadır.
1) Response.Redirect("http://www.herhangibirlink.com");
2)Response.Redirect("http://www.herhangibirlink.com",true/false);
2. overload'un 2 değişkeni endResponse'un true olması demek. Response.Redirect satırından sonra gelen kodları çalıştırma işlemi kes ve diğer sayfaya geç.
1. overload methodu kullandığımızda bu değer otomatik true'dur.

protected void Page_Load(object sender, EventArgs e)
{
  try
  {
    if (Request.QueryString("ID")==null)
       Response.Redirect("/uyeler.aspx", true);
  }
  catch (Exception ex)
  {
    //Bir şeyler yap.
  
}

Biz Response.Redirect'i try catch bloğu içinde endResponse değerini true ile kullandığımızda ThreadAbortException hatası fırlatıyor.
Neler yapılabilir?
1) En basiti Response.Redirect'i try catch bloğu dışına taşırız.
2) 2. parametre olan endResponse değerini false yaparız ve Thread'in bütün işlemler bittikten sonra sonlanmasını sağlarız.
3) Hataları filtreleriz.
protected void Page_Load( object sender, EventArgs e)
{
  try
  {
     if (Request.QueryString("ID")==null)
       Response.Redirect("/uyeler.aspx", true);
  }
  catch (ThreadAbortException exThread)
  {
    // Herhangi bir şey yapma!
  }
  catch (Exception exDefault)
  {
    // Diğer hatalar loglanabilir.
  
}
İyi Kodlar!

Kaynak: http://www.kodstrap.com/makale/responseredirect-thread-was-being-aborted-hatasi-cozumu/8044

Yorumlar