C#

Hatalar ve Özel Durumları Yönetmek

Program geliştirirken meydana gelebilecek hatalar olabilir. Bilindiği üzere test süreci program yazım aşamalarında baştan sona çalıştırdığınız ve en çok zaman alan bir aşamadır. Tasarım zamanında (design time) olan biten herşey bir ölçüde kontrolümüzde gerçekleşiyor ancak çalışma zamanlı (runtime) test süreçlerini izlemek oluşabilecek hataları tespit etmek daha önemlisi öngürülemeyen olan hataları düşünmek. Hepsi bir yazılımcının düşünmesi gerekenler arasında yer alıyor.

Bir kod parçacığını oluşabilecek hatalara karşı denetlenmesini “try..catch..finally” blokları ile sağlayabilirsiniz.

Try ifadesi çalışma hatası olabilecek komut satırlarından hemen önce, catch ifadesi ise çalışma hatası oluştuğunda çalıştırılacak ifadelerin önüne yazılır. Ayrıca programımızda hata olup olmadığına bakılmaksızın çalıştıracağımız komutlar varsa bunlar finally bloğu altına yazılarak çalıştırılabilir. Finally bloğu isteğe bağlı olarak kullanılır.

Aşağıda ki örnekte klavyeden okunan bir sayının ekrana yazdırılması işlemi hata denetim blokları altına alınmıştır.

Yukarıda verilen kodu “try..catch..finally” blokları altına almadan çalışma zamanında hatalı değer girişi yapılmış olsaydı;

exc1

program kırılacak ve hata fırlatılacaktı. Hata denetim yönetimi yaptığınızda program kırılma noktasında hata olduğunu algılayacak ve önce catch bloğuna sonra finally bloğunu işleticek kırılması önlenecektir.

C#.NET dilinde uygulama geliştirirken oluşabilecek tüm hatalar .NET Framework altındaki Exception sınıfları halinde tanımlanır. Örneğin dizinin büyüklüğünden farklı bir indis verildiğinde IndexOutOfRangeException hatası ortaya çıkar. Tüm hatalar gibi bu hata da Exception taban sınıfından türetilmiştir.

Exception tüm hata türlerini yakalamak ve yönetmek için kullanılan hata sınıfıdır. Bu sınıf içinde birçok hata türünü barındırır. Bu sınıfı kullanarak yakalanan hatalar bir değişkene aktarılıp ekrana yazdırılabilir. Ayrıca yeni istisnalar oluşturulabilir.

exception

C# ile kullanılan belli başlı Exception sınıfları şöyledir;

Exception Açıklama
Exception Genel tüm hatalar
StackOverFlowException Taşma hatası
IndexOutOfRangeException Index sınırlarının aşılması
DivideByZeroException Sıfıra bölme hatası
ArraytypeMistmatchException Dizi ile ilgili hata sınıfı
InvalidCastException Tür dönüşmleri ile ilgili hata sınıfı
IOException Giriş/Çıkış sistem hata sınıfı
NullReferanceException Nesne referans hatası
OutofMemoryException Yetersiz hafıza
Argument Exception Bağımsız değişken hatası

“throw” Anahtarı

İstisna fırlatmak için kullanılan komuttur. İstisna fırlatmak belli alanlarda kendi istisnalarımızı oluşturmaktır. Oluşturulan istisnalar “Try Catch” bloğu yardımı ile yakalanır.Bu işlem için “Throw New” anahtar kelimesi kullanılır.

Sunum Dosyası hatalar-ve-ozel-durum-yonetimi.pptx

Yorum Yap