Hataları Yonetmek ( Visual Basic .NET )
Visual Basic0 Mesaj
●32 Görüntüleme
- ReadBull.net
- Programlama ve Yazılım
- Programlama Dilleri
- Visual Basic
- Hataları Yonetmek ( Visual Basic .NET )
-
26-09-2019, 03:05:36
" Vb.net Hataları Yonetmek "
Try-Catch-Finally, daha onceden C++ ve Java programcılarının kullandığı, hataları denetim altına almayı oldukca kolaylaştıran bir yapı.
Kullanımı:
Try
Hatanın oluşabileceği kod bloğu
Catch
Hata meydana geldiğinde uygulanacak kod bloğu
Finally
Her durumda calışan kod bloğu
End Try ' Denetimi bitir
Try ve End Try’ı kullanmak zorunlu, Catch ve Finally isteğe bağlı olarak kullanılabilir. (If-end if deyimine benzer bir kullanım yapısı var.)
Bir ornekle nasıl kullanıldığını gorelim: Bir console application acalım ve main prosedurunun icine
Dim x As Integer = 15
Dim y As String = "beş"
Dim z As Integer = x / y
yazalım. Birinci satırda tipini integer olarak belirttiğimiz x değişkenine integer bir değer olan 15 sayısını, ikinci satıra ise tipini string olarak belirttiğimiz y değerine string bir değer olan “beş” değerini atadık. Ucuncu satırda programımız integer değeri olan x’i, string bir değeri olan y’ye bolmeye calışacak; bu işlem mumkun olmadığından doğal olarak hata verecek ve program orada sonlanacaktır.
Şimdi de aynı ifadeye Catch’i ekleyelim.
Try
Dim x As Integer = 15
Dim y As String = "beş"
Dim z As Integer = x / y
Catch
Console.Writeline(“Bir Hata Oluştu”)
End Try
Kodu calıştırdığınızda programın bir onceki ornekte karşılaştığımız hatayı vermediğini ve “Bir Hata Oluştu” uyarısının ekranda gorunduğunu goreceksiniz. Peki bu nasıl oldu da oldu?
Hata cıkması muhtemel olan kod bloğunu Try – End Try arasına alıyoruz. Bu aralıkta bulunan kod bloğunda herhangi bir hata durumu oluştuğunda program hata vermeden ve programı sonlandırmadan doğrudan Catch’e gidiyor ve bu blok arasında yer alan kodu uygulamaya geciyor. Yazdığımız koda geri donersek Try’dan sonraki kod bloğunda yukarıda bahsettiğimiz hata durumu oluştu ve bir oncekinin aksine program hatası vermeden doğrudan Catch de kod bloğundaki koda gecti ve o kodu uygulayarak ekrana “Bir Hata Oluştu” yazdırdı.
Şimdi de Try-Catch-Finally ifadesinde yine opsiyonel ifadelerden biri olan Finally’nin nasıl kullanıldığını gorelim. Finally kod bloğunda bulunan kod her durumda calıştırılacaktır.
Try
Dim x As Integer = 15
Dim y As String = "beş"
Dim z As Integer = x / y
Catch
Console.Writeline(“Bir Hata Oluştu”)
Finally
Console.Writeline(“Bu yazı her durumda goruntulenecektir.”)
End Try
Programı calıştırdığınızda bir onceki orneğe ilave olarak ekranda “Bu yazı her durumda goruntulenecektir.” yazısı goruntulenecektir.
Catch’e tekrar geri donersek cıkan hataların ne tur bir hata olduğunu tespit edebilmekte mumkun.
Catch a As Exception
Console.WriteLine("Bir Hata Oluştu:" & a.ToString())
Burada Exception tipindeki hatayı a değişkenine atadık ve toString() metoduyla hatanın acıklamasını alıp ekrana yazdırdık.
toString(): Hatanın acıklamasını verir.
Source: Hataya neden olan uygulama ya da objenin adını verir.
StackTrace: Hatanın oluştuğu stack’i verir.
Ayrıca farklı hata durumlarına gore farklı catch blokları acabilir ve buradaki kodları devreye sokabiliriz.
Catch a As InvalidCastException
Console.Writeline(“Gecersiz karşılaştırma işlemi”)
Catch a As Exception
Console.WriteLine("Bir Hata Oluştu:" & a.ToString())
Ornekte mevcut hatamızın tipi InvalidCastException olduğu icin program o catch bloğunu calıştıracaktır. ,
Gorduğunuz gibi Try-Catch-Finally, hataları yakalama ve kontrol etme (error handling) konusunda işimizi oldukca kolaylaştıran bir yontem.
__________________