7 Temmuz 2010 Çarşamba

A first chance exception of type 'System.Threading.ThreadAbortException' occurred in mscorlib.dll

Bu hatayı sayfalarımızı her run ettiğimizde göremeyiz. Çünkü exception fırlatıldıktan sonra uyarı veren bir exception değil " Bu söylediğim sadece Microsoft tabanlı sistemlerde asp.net geliştirilen projeler run edildiğinde geçerlidir". Aksi takdirde linux vb sistremlerde bu exception kolaylıkla alınabilir! Sakın içinizden bi zeki çıkıpta "linuxla asp.net ne alaka? bu adam saçmalıyor demesin!! Ona sadece "MONO" derim :) Neyse mono projesi farklı bir konu şimdi kendi işimize dönelim.

Arkadaşlar bu exceptionı microsoft tabanlı sistemler ekarte ediyor olsada, eğer projenizi run ettiğinizde output penceresinde neler olup bittiğini kontrol ederseniz dediğim exceptionla karşılaşabilirsiniz.

Bu hatayı almanız için sayfada herhangi bir yerde Response.Redirect("") methodunu kullanmış olmanız yeterli.
Bu method esasında overload edilmiş bir methoddur ve ikinci parametre olarak Response işleminin bitip bitmediğinin kotrol edilip edilmeyeceği bilgisini ister.

Eğer Response.Redirect("Deneme.aspx",true); dersek Response işleminin doğru bir şekilde bitip bitmediğinin kontrolünü yapar. Eğer biz Reflaction yada bir benzeri bir yöntem kullanmıyor ve sayfa response olduktan sonra bu veriyi alamayacağımızı biliyorsak, hiç kasmaya gerek yok, direk yeazmanız gereken;

Response.Redirect("Deneme.aspx",false);

Aşşağıdaki çıktıları takip edin ne dediğimi daha iyi anlayacaksınız..

False Yapmadan Önce..



False Yaptıktan Sonra..


Umarım işinize yarar bir bilgidir. Genelde dikkat edilmez ama exception handlig ve performance konularında önemli bir husustur!!

İyi çalışmalar..

Hiç yorum yok:

Yorum Gönder