Ana içeriğe atla

( C#) Ders 7 - C# ile Kendi Hata Türlerimizi Nasil Olustururuz

.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.
?
1
2
3
4
5
6
7
8
9
10
11
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
?
1
2
3
4
5
6
7
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.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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.

Yorumlar

Bu blogdaki popüler yayınlar

Linux En Az Sistem Gereksinimi İsteyen Dağıtımları Değerlendirilmesi

Linux İşletim Sisteminin Dağıtımlarının En az sistem gereksinimi isteyen sürümleri, değerlendirilmesi aşağıdadır, Değerlendirilen dağıtımlar şunlardır: Ubuntu Xubuntu Lubuntu Damn Small Linux Linux Mint Fedora Opensuse Debian Rat Hat Suse Linux Suse Linux Sistem Gereksinimleri: Pentium 1-4 ya da Xeon; AMD Duron, Athlon (XP, MP ya da 64), Sempron ya da Opteron 256MB RAM 500MB boş disk alanı 800x600 yada üstü resolution Rat Hat Memory Gerekli: 4 GB of memory Önerilen: 8 GB of memory CPU Gerekli: Intel Core processor, 2.4GHz, 512K cache or equivalent Önerilen: Intel multi-core processor, 2.4GHz dual processor, 512K cache or equivalent Storage 5 GB alan temel kurulum için. 40 GB alan Channel başına. 10 GB alan Cache dizini için(/var/cache/rhn) Disk yapılandırması olarak Raid 5 tavsiye edilir. Database İlk kurulum için 12 GB alan önerilir. Client ve channel hesaplamaları ise, 250 KB alan client system başına, 500 KB alan çhannel başına, ayrıca 230 KB channel da

( C#) Ders 4 - Diziler, Çok Boyutlu Diziler, Düzenli ve Düzensiz Çok Boyutlu Diziler Nasil Kullanilir. foreach Döngüsünün Kullanimi.

C# da Diziler Diziler için ayni tipteki verilerin tutuldugu bir koleksiyon diyebiliriz. Örnegin integer verinin bir yigin seklinde tutulmasi için dizileri kullaniriz. C# da diziler referans tipinde degiskenlerdendir. C# da tanimlanan tüm diziler System.Array sinifindan türemis bir nesnedir. C# da diziler asagidaki gibi tanimlanir. ? 1 <veri tipi>[] <degisken ismi> = new <veri tipi>[<dizinin boyutu>]; 10 adet integer veri tutan bir dizinin tanim ise ? 1 int [] integerDizi = new int [10]; Bir dizinin boyutlari sabittir ve kullanilmadan önce belirlenmelidir. Dizi boyutunu belirlemek için baska bir degiskende kullanabilirsiniz. ? 1 2 int boyut = 10; int [] integerDizi = new int [boyut]; Diziyi tanimlama ve baslangiç degerlerini atama islemini ayri satirlardada yapabilirsiniz. ? 1 2 int [] integerDizi; integerDizi = new int [10]; Ayrica dizileri tanimlarken, dizi içine atmak istedigin

JavaScript ile Popup Pencereleri

Popup pencereleri bir sayfa içinde ek bir pencere açma islemidir. Popup pencereler JavaScript kullanarak açilirlar. Popup pencereler yaygin olarak reklam göstermek amaciyla kullanilir. Diger bir kullanim amaci ise yardim sayfalari tasarlamak içindir. Ihtiyaciniz dogrultusunda farkli amaçlar için kullanilabilirler. Popup pencereler; Sayfa yüklenmesinde,Sayfadan çikildiginda,Kullanici bir linki tikladiginda açilabilir. Sayfa yüklenirken veya kapatilirken bir popup açmak için body etiketi içine asagidaki kodu yazmaniz yeterlidir. Sayfa yüklenirken ? 1 <body onload= "javascript: alert(Load islemi!')" > Sayfa Kapatilirken ? 1 <body onunload= "javascript: alert('UnLoad islemi!')" Link tiklandiginda ? 1 <a href= "javascript: alert('link Tiklandi!')" >Popup Aç!</a> Popup olarak yeni bir pencere açmak istiyorsak window.open() metodunu kullaniriz. Window.open metodun