C# `ta Hata ayıklama – Yakalama

21 Şubat 2007 – 00:50

 

            Programcılıkta bilindiği üzere tüm
diller de hata oluşma olasılığı çok yüksektir . Bu hatalar gerek
kullanıcılar tarafından gerekse programın çalıştırılması için gerekli
olana diğer yardımcı unsurların düzgün olarak çalışmamasından dolayı
ortaya çıkabilir . Bu hataları yakalamak , yok etmek gerçekten de güçtür
. Oluşabilecek hataları teker teker göz önüne alarak kontrollere
bağlanır . Ancak bu işi tek tek yapmak zor olur hatta gözden kaçanlar
olursa işimiz daha da zorlaşacaktır . C# `ta bu hataları yakalamak ,
önlemek için bazı yöntemler bulunmaktadır . Bu yazımda bunlar dan try-catch
ve try-catch-finally bloklarından bahsedeceğim .

 

Try-Catch
Blokları

 

            Try – Catch bloklarında ;  try
içerisine hataya sebep olabilecek kodların , catch içerisine ise eğer
bir hata oluşur ise programın ne yapacağını , ne şekilde devam edeceğini
belirttiğimiz kodları yazarız . Kullanımını şu şekildedir :

 


            try


            {


                //Hataya sebep
olabilecek kodların yazıldığı bölüm

    
       }


            catch


            {


                //Programın hata
sonrası nasıl devam edeceğinin belirtildiği bölüm


            }

 

            Şimdi bir örnek yardımı ile konuyu
pekiştirelim . Diyelim ki programımızda bir kişinin maaşını hesaplıyoruz
. Bunun için kullanıcıdan çalışanın birim saat ücretini ve kaç saat
çalıştığını alıyoruz . Eğer kullanıcı bu bölümlere sayısal değer dışında
bir giriş yapar ise , almış olduğumuz değeri sayısal bir değere
dönüştüremeyeceğimiz için ve bu değerler ile matematiksel işlem
yapamayacağımız için programımızda hata oluşacaktır .

 


private

void btnHesapla_Click(object
sender,System.EventArgs e)


            {


                int bsUcreti,
acSaati;


                try


                {


                    bsUcreti = int.Parse(textBox1.Text);


                    acSaati = int.Parse(textBox2.Text);


                }


                catch


                {


                    MessageBox.Show("Lütfen
Sayısal Değerler Giriniz"
);


                }


            }

 

 

            Eğer direk olarak hatanın ne olduğunu
kullanıcıya aktarmak istiyor iseniz catch bloğunu şu şekilde
değiştirmelisiniz

 


catch
(Exception
hataID)

{

     
MessageBox.Show(tihs,"Hata
Oluştu"+
hataID);

}

 

 

Try –
Catch – Finally

 

Try – Catch bloklarına
ek olarak birde Try – Catch – Finally bloklaı vardır . Buradaki fark ise
eğer herhangi bir hata oluşsun yada oluşmasın her durumda yapılması
gereken bir iş var ise finally bloğu içerisinde yazılabilir .  Örneğin
bir veritabanı uygulaması geliştiriyorsunuz . Bu tarz işlemlerde
veritabanına bağlanıp yapmak istediğiniz işlemi tamamladıktan sonra
mutlaka veritabanını kapatmak istersiniz . Buda ne demektir yapacağınız
iş başarılı olsun yada olmasın her durumda veritabanına olan
bağlantınızı sonlandıracaksınız . İşte bu gibi durumları finally bloğu
içerisinde belirtilir . Kullanımı da şu şekildedir .

 

 


private

void btnBilgiGuncelle_Click(object
sender,System.EventArgs e)


            {


               


                try


                {


                    bsUcreti = int.Parse(textBox1.Text);


                    acSaati = int.Parse(textBox2.Text);


                }


                catch


                {


                    MessageBox.Show("Lütfen
Sayısal Değerler Giriniz"
);


                }


                  finally


                {


                  bglanti.Close();


                }

 


            }

 

Bookmark and Share

Post a Comment

Subscribe without commenting