Günaydın arkadaşlar bugün sizlere başlıkta olduğu gibi bazı olayları göstereceğim. İlk göstereceğim konu formunuzda hata yakalama mesela iki sayının toplamı örneğinde sayı ile birlikte harf girildiğinde aşağıdaki gibi hata mesajını alırız. Bu tür hatalar meydana geldiği zaman "try catch" ile hatayı mesaj kutusunda gösterebiliriz. Bu sayede programımız ani hatalar ile kapanmaz.
Örnek sayı toplamı kodum;
sayı1 veya sayı2 ben sayı1'e(textbox1) yazdım fark etmez harf girdiğiniz zaman hata alır ve programınız kapanır.
Hata oluştuğu zaman catch’dan End Try kadar olan kodlar gerçekleştirilir. Program kodlarımızı try’dan sonra yazıyoruz. Catch’dan sonra ex yerine bir değişken tanımlıyoruz. Ben aşağıda görüldüğü gibi değişkene sorun adını verdim. Siz farklı bir isim verebilirsiniz. Catch’dan sonraki kodlar ise hata oluştuktan çalışır. Hata oluştuğu zaman mesaj kutusunda hatanın adını da yazsın diye değişken_ismi.message kodunu kullandım.(sorun.Message).Baş tarafına da Hata: ekledim. İkisini birleştirmek içinde & işaretini kullandım. Vb.net'te metinleri birleştirme işlemi için & işareti kullanılır. Şunu da belirtelim ekranda mesaj kutusu olarak kullanıcıya uyarı yansıtmak için MsgBox kullanılır.
Finally bölümündeki kodlar hata olsada olmasa da gerçekleşir. Aşağıda görüldüğü gibi her iki durumda da textBox1 ve textbox2′in içeriğini sil komutunu kullandık. (textBox1.Text=””)Bu programda kullanılması fazla mantıklı değil ama örnek olsun diye kullandık. textBox1.Text=”” komutu yerine textBox1.Clear() kullanabilirsiniz.
Hata yakalama için aşağıda görüldüğü gibi On Error Resume Next’de kullanılabillir.Bu komut satırı kullanıldığında hata oluşan satırda hiçbir işlem yapılmaz.
Yukarıda görüldüğü sayi2 =CSng(textBox2.Text) satırında hata oluştuğu için o satırı işleme koymadı ve sonuç 12 çıktı. Bu yüzden On Error Resume Next bu tür örneklerde kullanılmaz. Try Catch’i kullanmalıyız.
Örnek sayı toplamı kodum;
Kod:
Dim sayı1 = CSng(TextBox1.Text)
Dim sayı2 = CSng(TextBox2.Text)
Dim sonuc = TextBox3.Text
sonuc = sayı1 + sayı2
TextBox3.Text = sonuc
sayı1 veya sayı2 ben sayı1'e(textbox1) yazdım fark etmez harf girdiğiniz zaman hata alır ve programınız kapanır.
Hata oluştuğu zaman catch’dan End Try kadar olan kodlar gerçekleştirilir. Program kodlarımızı try’dan sonra yazıyoruz. Catch’dan sonra ex yerine bir değişken tanımlıyoruz. Ben aşağıda görüldüğü gibi değişkene sorun adını verdim. Siz farklı bir isim verebilirsiniz. Catch’dan sonraki kodlar ise hata oluştuktan çalışır. Hata oluştuğu zaman mesaj kutusunda hatanın adını da yazsın diye değişken_ismi.message kodunu kullandım.(sorun.Message).Baş tarafına da Hata: ekledim. İkisini birleştirmek içinde & işaretini kullandım. Vb.net'te metinleri birleştirme işlemi için & işareti kullanılır. Şunu da belirtelim ekranda mesaj kutusu olarak kullanıcıya uyarı yansıtmak için MsgBox kullanılır.
Kod:
Try
Dim sayı1 = CSng(TextBox1.Text)
Dim sayı2 = CSng(TextBox2.Text)
Dim sonuc = TextBox3.Text
sonuc = sayı1 + sayı2
TextBox3.Text = sonuc
Catch sorun As Exception
MsgBox("Hata :" & sorun.Message)
End Try
Finally bölümündeki kodlar hata olsada olmasa da gerçekleşir. Aşağıda görüldüğü gibi her iki durumda da textBox1 ve textbox2′in içeriğini sil komutunu kullandık. (textBox1.Text=””)Bu programda kullanılması fazla mantıklı değil ama örnek olsun diye kullandık. textBox1.Text=”” komutu yerine textBox1.Clear() kullanabilirsiniz.
Kod:
Try
Dim sayı1 = CSng(TextBox1.Text)
Dim sayı2 = CSng(TextBox2.Text)
Dim sonuc = TextBox3.Text
sonuc = sayı1 + sayı2
TextBox3.Text = sonuc
Catch sorun As Exception
MsgBox("Hata :" & sorun.Message)
Finally
TextBox1.Text = ""
TextBox2.Text = ""
End Try
Hata yakalama için aşağıda görüldüğü gibi On Error Resume Next’de kullanılabillir.Bu komut satırı kullanıldığında hata oluşan satırda hiçbir işlem yapılmaz.
Kod:
On Error Resume Next
Dim sayı1 = CSng(TextBox1.Text)
Dim sayı2 = CSng(TextBox2.Text)
Dim sonuc = TextBox3.Text
sonuc = sayı1 + sayı2
TextBox3.Text = sonuc
Yukarıda görüldüğü sayi2 =CSng(textBox2.Text) satırında hata oluştuğu için o satırı işleme koymadı ve sonuç 12 çıktı. Bu yüzden On Error Resume Next bu tür örneklerde kullanılmaz. Try Catch’i kullanmalıyız.