Exception Sınıfı

Uygulamalarımızda çalışma zamanında hatalar ortaya çıkmaktadır. Bu hatalar Exception sınıfından türetilirler. Exception, bütün hata tipleri için ana(base class) sınıftır ve miras alan iki adet sınıf vardır.

  • SystemException: .NET'in sağladığı hazır (built-in) hata sınıflarıdır. Sık ortaya çıkan hata sınıfları bu  sınıfta toplanmıştır. Çalışma sırasında ortaya çıkan hatalar bu sınıfta toplanmıştır.
  • ApplicationException: .NET'in sağladığı hata sınıflarının yetersiz kaldığı durumlarda programcı iş kurallarına göre özel hata sınıfları oluşturabilir. 


Bir hata sınıfından nesne türetilmesi, program sırasında beklenmeyen bir hatanın ortaya çıkmasına bağlıdır.


Başlıca SystemException sınıfları

  • InvalidCastException: Tip dönüşümü(casting) işlemi yaparken doğru veri tipine dönüştürülmemesi sonucunda ortaya çıkan hata tipidir.
  • IndexOutOfRangeException: Dizinin elemanlarına erişirken minimum ve maksimum değerlerin dışında bir elemana erişme sırasında ortaya çıkan hata tipidir. Aralık dışında olduğunu belirtir. Bu hata tipi sıklıkla döngü kullanırken ortaya çıkar.
  • DivideByZeroException: Sıfıra bölme işlemi sırasında ortaya çıkan hata tipidir.
  • OutOfMemoryException: Programın çalışması için yeterli bellek alanı olmadığında ortaya çıkan hata tipidir.
  • NullReferenceException: Bellekte yer ayrılmamış yani Null olan bir nesneye erişmeye çalışırken ortaya çıkan hata tipidir. new keywordü ile instance işlemi yaparsak bu hatayı çözebiliriz.
  • ArrayTypeMismatchException: Dizinin veri tipinden farklı tipte bir eleman eklerken ortaya çıkan hata tipidir.
  • FileNotFoundException: Dosyanın fiziksel olarak belirtilen konumda bulunmamasından dolayı ortaya çıkan hata tipidir.
  • InvalidOperationException: Bir nesnenin mevcut durumunda geçersiz bir işlemin olmasından kaynaklı hata tipidir. 
  • ArgumentException: Bir metotta değişkenlerin geçersiz bir biçimde kullanılmasından dolayı ortaya çıkan hata tipidir.
  • ArgumentNullException: Değişken değerinin null olarak geçildiği durumlarda ortaya çıkan hata tipidir.
  • OverflowException: Veri türünün kapasitesini aşan bir değer eklemek istediğimizde ortaya çıkan hata tipidir. Örneğin byte 0-255 arasında bir değer alırken, aralık dışında bir değer verirsek hata alırız.
  • FormatException: Formata uygun veri girişi yapmamaktan dolayı ortaya çıkan hata tipidir. Örneğin bir sayı yerine string bir ifade girersek "Giriş dizesi doğru bir biçimde değildi." mesajını alırız.


Exception sınıfına ait property'ler

Karşılaştığımız bir hatanın çözümüne ulaşmak istersek, ilgili hataya ait bilgilere ulaşabileceğimiz özellikler vardır.
  • InnerException: Ortaya çıkan hatanın içerisinde başka hatalar varsa onları yakalamaya yarar. Eğer hata yoksa null değer alır.
  • Message: Hata mesajını yani açıklamasını getirir.
  • HelpLink: Eğer hatanın çözümü için yardım linki varsa onu döndürür.
  • TargetSite: Hataya sebep olan metot hakkında bilgi verir.
  • HResult :Hata sınıfına ait sayısal değer. 
  • StackTrace: Hatanın ortaya çıktığı yer hakkında bilgi verir. (metot veya program)


Exception sınıfına ait metotlar

  • GetBaseException(): Ana hatayı oluşturan hatalar zincirini döndürür. Sıralı exceptionlar da diyebiliriz.
  • GetHashCode(): İlgili hata tipinin hash değerini döndürür.
  • GetBaseException(): Hata sınıfını döndürür.







Yorumlar