Cuma, 23 Mart 2012 08:30

Hata Yakalama(Exception Handling)

Yazan
Öğeyi Oyla
(6 oy)

İSTİSNA YÖNETİMİ(EXCEPTION)

İstisnalar, programımızın çalısma zamanında yani program çalısırken ortaya çıkan olağan dısı durumlardır.

-Programcılık dilinde "programın kırılması" ile adlandırılan olaylarda aslında bir istisnanın meydana geldiğini göstermektedir. Örneğin bir sayının sıfıra bölünmesi "DivisionDivideByZeroException"

-istisnasının ortaya çıkmasına sebep olmaktadır.

-Baska bir istisna örneği ise uyumsuz tipler arasında değer aktarımı gerçeklestirmeye çalısmaktır. Bir programcı olarak kod üzerinde her ne kadar detaylı çalısma yapsakta kullanıcı faktörü göz önünealındığında çalısma zamanı hatalarının ( Runtime Error ) ortaya çıkması olasıdır.

csharp hata yakalama

Asağıdaki örneğimiz, çalısma zamanında ortaya çıkabilecek bazı istisnaları göstermektedir.

private void Form1_Load(object sender, EventArgs e)
{
int sayi1 = 15;
int sayi2 = 0;
int sonuc = 0;
sonuc = sayi1 / sayi2; // Sıfıra bölünme hatası
int durum;
sonuc = Convert.ToInt32("Selam"); // Tür dönüsüm hatası
}

 

 

İstisnaları ortaya çıkartmak ve bu istisnaları yakalayıp yönetmek ayrı islerdir. Bu makalemizde ortaya çıkmıs olan istisnaları yakalamayı ve yönetmeyi isleyeceğiz. Bir istisnayı yakalamak için öncelikle istisnanın ortaya çıkabileceği kod aralığını tespit etmek gerekir. Bu islem gerçeklestirildikten sonra asağıdaki ifadelerden birini kullanarak istisna yakalama islemi gerçeklestirilir.

1. try catch
2. try finally
3. try catch finally


private void Form1_Load(object sender, EventArgs e)
{
int sayi1 = 15;
int sayi2 = 0;
int sonuc = 0;
try // Dene
{
sonuc = sayi1 / sayi2;
// Normalde hata olması gerekiyor
}
catch // Olmazsa Bunu Yakala
{
MessageBox.Show("Bölünme hatası var, Değiskenleri Kontrol et");
}
}

c# try catch

private void Form1_Load(object sender, EventArgs e)
{
int sayi1 = 15;
int sayi2 = 0;
int sonuc = 0;
int durum;
try
{
sonuc = sayi1 / sayi2;
Convert.ToInt32("Selam");
// Normalde hata olması gerekiyor
}
catch (Exception hata)
{
MessageBox.Show("Bölünme hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
catch (Exception hata)
{
MessageBox.Show("Dönüsüm hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
}

private void Form1_Load(object sender, EventArgs e)
{
int sayi1 = 15;
int sayi2 = 0;
int sonuc = 0;
int durum;
try
{
sonuc = sayi1 / sayi2;
Convert.ToInt32("Selam");
// Normalde hata olması gerekiyor
}
catch (Exception hata)
{
MessageBox.Show("Bölünme hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
catch (Exception hata)
{
MessageBox.Show("Dönüsüm hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
}

private void Form1_Load(object sender, EventArgs e)
{
int sayi1 = 15;
int sayi2 = 3;
int sonuc = 0;
int durum;
try
{
sonuc = sayi1 / sayi2;
Convert.ToInt32("Selam");
// Normalde hata olması gerekiyor
}
catch (DivideByZeroException hata)
{
MessageBox.Show("Bölünme hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
catch (FormatException hata)
{
MessageBox.Show("Dönüsüm hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
}

private void Form1_Load(object sender, EventArgs e)
{
int sayi1 = 15;
int sayi2 = 3;
int sonuc = 0;
int durum;
try
{
sonuc = sayi1 / sayi2;
Convert.ToInt32("3");
// Normalde hata olması gerekiyor
}
catch (DivideByZeroException hata)
{
MessageBox.Show("Bölünme hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
catch (FormatException hata)
{
MessageBox.Show("Dönüsüm hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
finally
{
MessageBox.Show(“Program Hata Olsada, Olmasada Buraya Girer");
}
}

 



Okunma 6162 defa Son Düzenlenme Pazartesi, 02 Nisan 2012 05:54

Benzer Öğeler (etikete göre)

Bu kategoriden diğerleri: C# Dersine Giriş »