Merhabalar,

Sizde takdir edersinizki yazdığınız programda herşey herzaman yolunda gitmeyebilir. İşte bu gibi durumlardagelişmiş hata yönetim teknikleri kullanarak programımızı çökmekten kurtarabiliriz. Programınız çöktüğünde bildiğiniz gibi çirkin bir sarı hata sayfasıyla karşılaşırsınız.

 

Asp.Net te hata yönetiminin 3 yolu vardır.

1. try-catch bloğu. Bu Structured Exception Handling (SEH) i çağırır.

2. Hata Olayları.

3. Genel Hata Sayfası

 

 

try-catch Bloğu

 

try
{
con = new SqlConnection("integrated security=SSPI;
data source= (local);persist security info=False;
initial catalog=Northwind");
da = new SqlDataAdapter("Select * from Olmayantablo", con);
ds = new DataSet();
da.Fill(ds);
}
catch(SqlException ex)
{
return "Başarısız Bağlantı " + ex.Message;
}
finally
{
con.Dispose();
}
return "Başarılı Bağlantı";
 
gördüğünüz gibi olmayan bir tabloya bağlantı kurmaya çalışıyoruz.
 Hata oluştuğu anda catch bloğuna girecektir ve bize hatayı gösterecektir. 
Finally bloğu ise her halukarda çalışacak olan bloktur. 
Burada ise açılan bağlantıyı tekrar kapatıyoruz.  
catch bloğunu 
catch(Exception ex)
{
}
şeklindede yapabilirdik ama iyi bir programlama için özel hataları yakalamamız gerekir.bunun için  SqlException kullandık.

 

.Net te Hata Yönetimi için Debug/Exception menülerini kullanabilirsiniz.

 

 

Hata Olaylarını Kullanmak

Asp.Net te 3 farklı hata olayı vardır.Bunlar sayesinde kullanıcı dostu hata mesajları verebilirsiniz.

1.Page_error: sayfadaki hataları yakalar.Web Form da kullanılabilir

2.Global_Error: Uygulamadaki hataları yakalar.Global.asax dosyasında kullanılabilir

3.Application_Error: tüm uygulamalardaki hataları yakalar.Global.asax dosyasında kullanılabilir

 

bunun yanında Server objesinin şu 2 metodu da hata olaylarında kullanılabilir.

GetLastError: Uygulamada Oluşan En son hatayı verir

ClearError:Uygulamada oluşan tüm hataları temizler. bu sadece Application_Error olayında kullanılabilir.

 örnekler;

 

private void Page_Error(object sender, System.EventArgs e)
{
Exception ex = Server.GetLastError();
Response.Write("Sayfadaki Hata Yakalandı<br>");
//Server.ClearError();
}
protected void Application_Error(Object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
Response.Write("Uygulamadaki hata yakalandı <br>");
Server.ClearError();
}
protected void Global_Error(Object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
Response.Write("Globaldeki hata yakalandı <br>");
}
 

 

Genel Hata Sayfası Kullanımı

bu yöntemde tasarımınıza uygun bir hata sayfası oluşturursunuz ve

kullanıcıya bir hata olşutuğunda bunun görüntülenmesini sağlarsınız.

yine bu yöntemde de 2 teknik mevcut.

1. web.config dosyasındaki customErrors tagını kullanmak

2.Sayfanın @Page tanımındaki errorPage özelliğini kullanmak.

 

 örnekler;

web.config de kullanımı. Bunu <system.web> in içerisine koymalısınız.

<customErrors mode="On" defaultRedirect="Hata.aspx">
<error statusCode="404" redirect="Hata404.aspx" />
</customErrors>
 
Sayfada kullanımı;

<%@ Page language="c#" Codebehind="HataSayfasi.aspx.cs"
AutoEventWireup="false"
Inherits="ExceptionHandling.HataSayfasi"
errorPage="Hata.aspx" %>



 

Hatasız projeler dilerim. Hatasız kul olmadığı gibi Hatasız kodda olmaz :)

Umarım faydalı olmuştur. Saygılar.

 

Mustafa KOÇER

mkocer@dotnetkosesi.com

 

 

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5