C# Ders10- try catch finally kullanımı (hata yakalama)


Merhaba arkadaşlar,
Bugün sizlere try catch finally (hata yakalama) olayını anlatacağım. Bildiğiniz üzere kodlarımızı yazıp ve kullanıcıya programımızı sunduğumuz vakit kullanıcının girmiş olduğu yanlış verilerden dolayı programımız hata vermekte ve çökmektedir. Bu gibi durumu hemen hemen her programda yaşamamak için bizler olası bir hatadan dolayı programımız çalışır bir vaziyette olmasını istiyoruz. Bu yüzden kullanıcının her türlü yapacağı hatalarını da düşünerek programımızı yazmamız lazım. Aksi takdirde kullanıcıdan çok kötü yorumlar alıp mükemmel bir şey yapsanız dahi ufak bir hatadan dolayı çalışmıyorsa sizin o yaptığınız mükemmel program bir hiçtir.

İşte bu yüzden C# da try, catch ve finally kontrolümüzü kullanarak kullanıcının yapacağı tüm olasılıkları bu bloglar içine yazarız.

Try bloglarımızı yazmak için kolay bir yolu da try kelimesini yazdıktan sonra iki kere tab tuşuna basarsanız bu blogları sizin yerinize otomatik olarak tamamlar.

try catch bloğumuz

Bu koddaki throw kelimesi hatayı fırlatma anlamındadır. Eğer hatamız varsa catch bloğumuz çalışır. Exception anahtar kelimesinden sonra bir değişken tanımlıyoruz. Böylece hatamıza daha kolay erişebiliriz.

Finally anahtar kelimesi ise bu bölümündeki kodlar hata olsa da olmasa da gerçekleşir. O yüzden her durumunda da çalışacak olan kodlarımızı yazıyoruz. Şimdi bir örnekle nelerden bahsettiğimize bakalım.

Örnek: Kullanıcı girişli iki sayının ortalamasını hesaplayan bir program yapalım. Bunun için ekrana 3 label, 2 textbox ve bir de button koyalım. Aşağıdaki gibi bir tasarım ekranımız olsun.

tasarım ekranı

Label3 kontrolümüze sonucumuzu yazdıralım. Hadi kod tarafına artık geçelim.

private void buttonHesapla_Click(object sender, EventArgs e)
        {
            try
            {
                int sayi1, sayi2;
                double sonuc = 0;
                sayi1 = Convert.ToInt32(textBox1.Text);
                sayi2 = Convert.ToInt32(textBox2.Text);
                sonuc = (sayi1 + sayi2) / 2;
                label3.Text = sonuc.ToString();
            }
            catch (Exception hata)
            {
                MessageBox.Show("hata: " + hata.Message);
            }
            finally 
            {
                textBox1.Text = string.Empty;
                textBox2.Text = string.Empty;
            }
        }

hatalı ekran

Doğru ekran

Sonuç Ekran

Görüldüğü gibi programcı her türlü olasılığı düşünmeli ve ona göre program hazırlamalı. Try kısmında hata oluşmazsa finally kısmını da çalışarak program çalışmaya devam eder. Ama hata varsa catch bloğuna girer ve daha sonra da finally kısmına da girerek program hata vermeden çalışmasına devam eder.

Bir yorum ekleyin

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