C# Try Catch, Finally Nedir? – Ders 19

Program çalışırken hemen hemen her aşamasında hatalar meydana gelebilir. Kod parçalarının her zaman beklenildiği gibi çalışacağından emin olmak oldukça zordur.
Bu hatalar kişiden kaynaklanabileceği gibi kişinin dışından da kaynaklanabilir.

Bu gibi durumlarda hataları ekrana yazdırmak ve hatanın kaynağının ne olduğu öğrenmek, kullanıcıların öğrenip bize bildirmesi için try-catch bloğumuzu kullanırız.

Try-Catch bloğumuz aşağıdaki şekildeki gibi kullanılır:

try{
//Hata olmadığı sürece çalışacak kodlar;
}
Catch (özel durum){
//Hata oluştuğunda çalışacak kodlar;
}

Yukarıdaki gibi çalıştıracağımız sıkıntısı olmayan kodları Try bölümüne, oluşan hataları yakalamak için kullanacağımız bölüm ise Catch bölümüdür.

Catch kısmında genelde pek bir kod yazılmaz. Genellikle throw; veyahut

Try{}
Catch(Exception hata){
Console.WriteLine(hata.Message);
}

şeklinde kullanırız.

Try-Catch bloğumuzda birden fazla catch de kullanabiliriz. Örneğin:

try{
//Hata olmadığı sürece çalışacak kodlar;
}
catch (özel durum 1){
//İlgili hata oluştuğunda çalışacak kodlar;
}
catch (özel durum 2){
//İlgili hata oluştuğunda çalışacak kodlar;
}

En sık kullanılan üç özel durum aşağıda yer almaktadır.

FormatException: Sayısal veri türüne sahip bir değişkene bir harf girilmesi veya atanması.

OverflowException: Bir değişkene atanan veya girilen sayı, değişkenin tanımlandığı veri türünün alabileceği aralığın dışında kalması.

ArgumentNullException: Adından da anlaşılabileceği gibi sayısal veri türüne sahip bir değişkene null değerini atamaktır.

Özel Durumlar

Programlama dili, programınızın çalışması esnasında oluşabilecek hatalara karşı pek çok özel durum içermektedir. Birçok durumda bu özel durumlardan birinin özel duruma uygun olduğu görülecektir. Örneğin, “Denetlenmiş Deyimler” bölümünde sayısal işlemlerde meydana gelebilecek taşmalardan konusu geçmişti veya “Birden Çok Catch Bloku” başlıklı bölümde FormatException hatasından bahsedildi. Bu gibi hatalar sistem tarafından tanınan hatalardır. Ancak bazı programlarda belirlenebilecek özel durumlar oluşabilecektir. Bu gibi özel durumlar içinde programlama dili kendi içerisinde pek çok özel durum kullanıma sunulmaktadır.

Örneğin, yapılan bir programda kullanıcıya sunulan üç seçenekten birinin seçilmesi istendi (1, 2 ve 3 gibi). Ancak kullanıcı bunlar dışında bir seçeneği seçti (örnek 4 gibi). Bu durumda kullanıcı programda mantıksal bir hata oluşmasına sebep olmuştur. Dolayısıyla bu durumun kullanıcıya bildirilmesi gerekmektedir. Bunu yapabilmek için aşağıda söz dizimi görünen kodlama incelenmelidir.

switch(seçenek){ 
case 1: İşlemler; 
case 2: İşlemler; 
case 3: İşlemler; 
default: 
throw ArgumantOutOfRangeException(“Yanlış seçenek”); 
}

Bu kodlamada görülen gibi kullanıcı 1, 2 ya da 3 ‘ün dışında bir seçenek seçildiğinde “Yanlış seçenek” mesajıyla uyarılacak bir özel durum oluşturulmuştur. Programcı olarak bundan sonra yapılacak şey ise bu hatayı catch ile yakalayıp kullanıcı uyarılmaktır.

Özel durum oluşturmak için kullanılan söz dizim aşağıdaki gibidir:

throw new exception();

Yukarıda söz dizeminde de görülen özel durum oluşturmak için throw ifadesi kullanılmalıdır. Bu ifade ile özel durum olarak belirlenen işlemler, kodlamada meydana gelen normal hatalar gibi catch ifadesi ile yakalanabilir.

Finally Bloğu

Bir kodda özel durum oluşsa da, oluşmasa da kodumuzun her zaman çalıştığından emin olabilmemiz için Finally bloğumuzu kullanmak zorundayız.

Finally bloğunun yazılımı aşağıdaki gibidir:

try{
//Hata oluşmadığında çalışacak kodlamalar;
}
catch(hata)
{
//Hata oluştuğunda çalışacak kodlamalar;
}
finally{
En son çalışacak kodlamalar;
}

Yukarıda da görüldüğü gibi program ilk önce Try bloğumuzdaki kodları çalıştıracaktır. Ardından herhangi bir hata durumunda catch bloğumuz çalışacaktır. En sonunda ise Finally bloğumuz çalışacaktır. Kısacası Finally bloğumuz her durumda çalışacaktır. Finally bloğumuz genellikte veritabanı bağlantılarımızın kapatılmasında, Formlarda

Bir cevap yazın

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