Asp.Net’de sorunun daha kısada çözüme kavuşması için oluşan exception’ları ya bir dosyaya kaydederiz, mail göndeririz veya veritabanına yazdırırız duruma göre değişmektedir ama bunların sağlanması için hata yakalamalıyız.
Bu makalemizde Page veya Application tarafında Error event’leri ile hata yakalamayı göreceğiz.
Eğer belli bir sayfada hata yakalamaya ihtiyacımız var ise alttaki gibi Page_Error evet’i kullanımı sizin için uygun olacaktır.
Örnek Page_Error kullanımı
1 2 3 4 5 6 | protected void Page_Error(object sender, EventArgs e) { Exception ex = Server.GetLastError(); Server.ClearError(); Response.Write(ex.Message); } |
Yukarıdaki kod ile sadece kodun yer aldığı sayfada hata olma durumunda Page_Error event’i devreye girecektir ben örnek olsun diye sadece yakalanan exception’ın message’ini ekrana yazdırdım siz isterseniz dosyaya, veritabanına Exception’un diğer özelliklerinide kullanarak detaylı bir şekilde kayıt yapabilirsiniz ama Global olarak tüm sayfalarda oluşacak hatayı tek bir yerde yakalamak istiyorum diyorsanız o zaman Global.asax dosyasındaki Application_Error Metodu tamda işinizi görecek bir metod’dur.
Örnek Global.asax – Application_Error metodu kullanımı
1 2 3 4 5 | protected void Application_Error(object sender, EventArgs e) { Exception exc = Server.GetLastError(); Server.ClearError(); } |
Üstteki örnekte sunucu’da oluşan son hatayı exc adlı değişkenime alıyorum daha öncede belirttiğim gibi Exception’u yakaladıktan sonra özelliklerini kullanarak isterseniz veritabanına, dosyaya, maile aktarabilirsiniz dana önceki makalemde yakalanan exception’un dosyaya kaydını göstermiştim o yüzden bir daha deyinmek istemiyorum dosya yazma gibi işlemlere Exception ile işimiz bittiğinde ise Server.ClearError() metoduyla hatayı temizliyoruz.