Anasayfa / C#.Net / C# Try-Catch-Finally Blokları ile Hata Yakalama
robot malfunction

C# Try-Catch-Finally Blokları ile Hata Yakalama

Tüm programlama dillerinde olduğu gibi C# dilinde de programın çalışma zamanında meydana gelecek hataları engellemeye yarayan yöntemler bulunmaktadır. Try-catch-finally blokları C#’da hataları  yakalamak  için en fazla kullanılan kod bloğudur.

Try{
//Hata oluşabilecek kodlar
}
Catch{
//Hata oluştuğunda çalışacak kodlar
}
Finally{
//Her halükarda çalıştırılacak kodlar
}

Try-Catch-Finally Bloklarının Çalışma Şekli

Hata oluşma ihtimali bulunan kod satırları try bloğunun içine yazılır. Try bloğu içerisinde herhangi bir hata meydana gelirse try bloğundaki diğer kodlar çalıştırılmadan catch bloğu içerisine atlanarak buradaki kodlar çalıştırılır. Eğer programda hata meydana gelmezse catch bloğu içerisinde ki kodlar çalıştırılmaz. Try ve catch komutları mutlaka birlikte kullanılması gereken bloklardır. Finally bloğunun kullanımı ise yazılımcının isteğine bağlıdır. Finally bloğunda ki kodlar try ve catch bloklarından bağımsız her halükarda çalıştırılacak kodları içerir.

Konunun daha iyi anlaşılması için bir örnek üzerinden devam edelim. Bir form uygulaması açarak, ortalamayı hesaplayan aşağıdaki gibi bir uygulama yapalım.

ortalama hesaplama formu

Hesapla buttonuna tıklayarak aşağıdaki kodları yazıyoruz.

Kodları incelediğimizde kullanıcıdan verilerin alınarak değişkenlere atıldığı kısım try bloğu içerisine yazılmıştır. Bu blok içerisinde ki kodlarda kullanıcının textbox’lara sayısal değerler dışında veri girildiğinde hata oluşacağı öngörülmüştür. Eğer kullanıcı yanlış veri girişi yaparsa catch bloğundaki kodlar çalıştırılır ve “hata meydana geldi” mesajı verilir. Hata oluşsa da oluşmasa da finally bloğu içerisindeki kod çalıştırılarak textboxdaki veriler silinir.

hataTuru olarak tanımlanan değişken Exception turundedir ve yakalanan hatayla ilgili verileri içerir.

Birden Fazla Catch Bloğu Oluşturmak

Uygulamalarda bir çok sebepten dolayı hata oluşma riski bulunmaktadır. Şayet farklı hata türleri oluştuğunda farklı kod blokları işletilmek istenirse birden fazla catch bloğu kullanılabilir.

try{
//hataya müsait kod bloğu
}
catch(OverFlowException hata1){
//Taşma hatası meydana gelirse çalıştırılacak kod bloğu
}
catch(ArithmeticException hata2){
//Aritmetiksel hata meydana gelirse çalıştırılacak kod bloğu
}

Not: Finally kod bloğunun kullanılması tamamen programcının isteğine ve ihtiyacına bağlıdır. Kullanılması zorunlu değildir.

 

İlginizi Çekebilir!

c# müzik çalar yapımı

C# ile Müzik Çalar Yapımı

Bu dersimde Windows’un kendi müzik çaları olan Windows Media Player’ ı C# içerisin de kullanarak ...

Bir Cevap Yazın

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