İstisna işleme (exception handling) nedir ?

Bu sefer programlama dilleri ödevinden olan bir parçayı unutmadan, programlama dillerine yeni girmiş olan kişilerin de öğrenmesi gereken konuların başında gelenexception handling konusuyla ilgili ödevi sizlerle paylaşayım dedim.

Ödev sorumuz açık, “Programlamada istisna işlemenin (exception handling)  kullanım nedenlerini, kullanım şeklini ve programlama dil paradigmaları açısından konumunu anlatınız.”

Nesne yönelimli programlama dilleri yazılırken hata vermediği halde çalışma sırasında hata verebilir. Bu hataları kontrol etme işlemine İstisnai Durum Yönetimi (Exception Handling) denir.
.Net mimarisinde sık oluşan hataları yakalamak için gerekli sınıflar System.Exception sınıfı altında bulunmaktadır. Bu sınıfların yetersiz görüldüğü yerde programcı kendi hata sınıfını kendisi de yazabilir.
Exception’lar pek çok sebepten dolayı üretilebilirler. Bunlar kullanıcı kaynaklı, mantıksal yada sistemsel olabilirler. (Kullanıcı geçerli olmayan bir veri / veri türü girebilir. Açılmak istenilen veya sayfaya dahil edilmek istenen dosya bulunmayabilir. İşlemin ortasında internet bağlantısı kopabilir. Veritabanı işlemi sırasında veritabanına ulaşılamayabilir vb.)

Yukarıda sayılan bu istisnai ve beklenmedik durumların programlama dilinde algılanması ve bu durum olduğunda hatanın bir şekilde kotarılması (handle) mümkündür.

Klasik fonksiyonel dillerden ileri olarak nesne yönelimli programlama dillerinde bu durumun çözümü olarak bazı anahtar sözcükler vardır. Bu sözcükler try, catch, finally ve throw’dur.

Try-catch (dene-yakala) Blokları
Program içerisinde “try” bloğu içine hata alınabilecek olan kısım, “catch” içine ise programın verebileceği muhtemel hata yazılır. Art arda birkaç “catch” bloğu kullanılabilir.

Try-catch-finally (dene-yakala-sonuç) Blokları

Finally bloğu da try-catch ardına yazılarak programın hata verip vermediğine bakmadan çalışır. Finally bloğunun kullanılması zorunlu değildir ve kullanıldığı takdirde kendi üstündeki try-catch bloklarının tüm bağlantılarını kapatır, yani üst bloklarda veritabanıyla bir bağlantı yapılmışsa bu kapatılır.

Bu program C#’ta tanımlı tamsayı(integer) sınırlarını aşan yanlış bir değere eşitlendiğinde hata verir, int sınırları içinde bir değere atanırsa hata vermez. Her iki durumda da “finally” bloğu çalışır.

Throw (fırlat) Anahtar Sözcüğü

Throw ifadesiyle istenilen istisna istenilen anda ortaya çıkarılır. Bu istisnanın kullanıldığı yerde program durur ve istenen istisnayı üretir. Aşağıda “throw” anahtar sözcüğünün kullanıldığı bir örnek yer almaktadır.

Bu örnekte sıfıra bölünebilme hatası programcı tarafından oluşturulmuş ve bu hata “try” bloğunu “catch” bloğuna düşürmüştür.

Genel olarak web üzerine yoğunlaşan, gaza gelmek için müzik dinleyen, amatör olarak resim çekmeye çalışan, bir yandan özel bir şirkette çalışıp, diğer yandan da okumaya devam eden sıradan bir ölümlü. He bide buraların sahibi.

1 comments On İstisna işleme (exception handling) nedir ?

Leave a reply:

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.