Yazilim Mutfagi Dersleri ( C#) Ders 7 – C# ile Kendi Hata Türlerimizi Nasil Olustururuz

C# ile Kendi Hata Türlerimizi Nasil Olustururuz

C# programlama dili, kendi hata türlerimizi olusturmaya imkan verir. Bu sayede framework tarafindan tanimlanmamis olan hata türü ile karsilastigimizda kendi ihtiyaçlarimiza göre yeni hata türleri olusturabiliriz.

C# da hata yakalama mekanizmasi hakkinda bilgi almak için önceki makalemize göz atabilirsiniz.

Kendi hata türümüzü olusturabilmek için ilk olarak kendi class imizi olusturmaliyiz. Bunu yapabilmek için nesneye dayali programlamlama konusunda bilgi sahibi olmaliyiz. Bununla iligli bilgileri su makalemizden ögrenebilirsiniz.

.NET Framework de Hata Hiyerarsisi

.Net de iki tip hata türü vardir:

  • Çalisma aninda(runtime) olusturulan (Common Language Runtime) hata türleri, bunlar System Exceptions diye adlandirilir.
  • Kullanici programi tarafindan üretilen hata türleri. Bunlar da Application Exceptions diye adlandirilir.

.Net framework de hata hiyerarsisi asagidaki gibidir.

 

hata hiyerarsisi

 

Yukaridaki hiyerarsiden dolayi kullanici tarafindan olusturulan her hata ApplicationException sinifindan türemek zorundadir. Asagidaki kod örnegi OrnekHataTuru adinda yeni bir hata türü olusrurmamizi saglar.

class OrnekHataTuru : ApplicationException
{
    public OrnekHataTuru() : base ("Sifira Bölme Hatasi")
    {

    }
    public OrnekHataTuru(string message) : base(message)
    {

    }
}

.

Yukaridaki kod blugu ile hatamizi olusturduk. Simdi bir örnekle bu hata türünü kullanalim

static double Bol(double a, double b)
{
    if (b == 0)
        throw new OrnekHataTuru();
    double c = a / b;
    return c;
}

Yukarida bölme islemi yapan ve bölen 0 oldugu zaman hata firlatan bir fonksiyon yazdik. Simdi bu fonksiyonu main içinde kullanip sonuçlari görelim.

static void Main()
{
    try
    {
        Console.WriteLine("Try blogu içinde");
        double d = Bol(3,0);
        Console.WriteLine("Bolum : {0}",d);

    }catch(OrnekHataTuru e)
    {
        Console.WriteLine("Catch blogu içinde");
        Console.WriteLine("Hata olustu.");
        Console.WriteLine("Hata Mesaji"+e.Message);
    }
}

Kendi hata türlerimizi olustururken dikkat edilmesi gereken bazi önemli noktalar sunlardir:

  • .Net frameworkde tüm hata türlerinin sonunda "Exception" ifadesi yer alir. Örnegin; SystemException, NullReferenceException vs. Bu yüzden tanimladiginiz hata türünü isimlendirken hata türü isminin sonunda Exception ifadesini kullanmaniz önerilir. Bizim yaptigimiz örnekde buna dikkat etmedik ama siz edin 🙂
  • Olusturdugunuz Hata türünü her zaman ApplicationException sinifindan türetin.
  • Hata yakalama ve firlatma mekanizmasi bir miktar performans kaybina yol açar, Bu yüzden gereksiz hata firlatma ve yakalama islemleri yapmayin.

.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir