Visual Basic 6.0 Hata Yakalama

Levent Özberk tarafından yazıldı..

Visual Basic 6.0 da yazılımın kullanım sürecinde çıkabilecek hataları yakalayabilmek için On Error komutu kullanılmakta.
Basit bir rutin yazarak bu komutu her defasında tekrar tekrar yazmayı engeleyebiliriz.

Ama önce bu komutun işleyişi basit bir kod üzerinden açıklayalım

Private Sub Command1_Click()
On Error GoTo Hata:

Program kodu...

Exit Sub
Hata:
MsgBox "Hata oluştu"
End Sub

Command1 tuşuna basıldığında yazılım program kodunu icra edecek,  ve Exit Sub komutuyla rutinden çıkacaktır
ancak kod içerisinde bir hata oluşması durumunda yazılımı Hata etiketine atlayacak ve bu etiketin altında yer
alan komutları icra edecektir. Bu örnekte hata oluşması durumunda yazılım "Hata oluştu" mesajını verecektir.

Örneğimizi biraz daha geliştirelim

Private Sub Command1_Click()
On Error GoTo Hata:

Program kodu...

Exit Sub
Hata:
MsgBox "Hata oluştu" & vbNewLine & Err.Description, vbExclamation + vbOKOnly, "Error: " & Err.Number
End Sub

Birinci örneğimize ek olarak 2. örneğimizde Err.Description ile hatanın içeriğini,  Err.Number komutu ile de hata numarası öğrenebiliriz.

Burada çok bilinen hata numaralarına göre Select Case yada If karar yapılarını kullanarak hataya göre yazılımı düzenleyebiliriz.

Hata etiketinden sonra verilecek hata mesajı için global bir fonksiyon yazılarak her seferinde bu mesajın yazılması önlenebilir.
Bu fonksiyon için bir örnek yazalım. Bu fonksiyonu Module içerisine kopyalayıp yapıştıralım

Module

Public Sub HataYakalama(RutinAdi As String, Err As ErrObject)

MsgBox RutinAdi & " hata oluştu." & vbNewLine &
"Açıklama: " & Err.Description, vbExclamation + vbOKOnly, "Error: " & Err.Number

End Sub

Form içerisinde kullanılacak kod

Private Sub Command1_Click()
On Error GoTo Hata:

Program kodu...

Exit Sub
Hata:
Call HataYakalama("Command1 de", Err)
End Sub