MS Access Veritabanları, VBA ve SQL Kullanımı

Microsoft Access'e dair herşey...

Hata Yakalama ve Hata Yönetimi (Error Trapping and Error Management)

Hata Yakalama Ve Hata Yönetimi

Uygulamalarımızı yürütürken istenmeyen hatalar ortaya çıkabilir. Bu hataların ortaya çıkma sebebini, açıklamasını doğru hata yönetimi ile ya bertaraf (gözardı) ya da hata durumunda hangi yolları izleyeceğimizi öğrenebiliriz.

Örneğin bir sayıyı (0) sıfıra bölmeye çalıştığımızda Division by zero (11 Numaralı hata) hatası oluşacaktır. Bununla birlikte değişkenin türüne uygun olmayan bir veri kullanmış olabiliriz, olmayan bir değişkene erişmeye çalışıyor olabiliriz, değişken tanımlanması zorunlu iken (Option Explicit) değişken tanımlamamış olabiliriz, if komutunda, for next döngüsünde veya select case ifadesinde sonlandırılmamış komutların (end if, next xx, end select) unutmuş olabiliriz, var olmayan bir yola(path) ya da bir dosyaya başvuru yapmaya çalışmış olabiliriz ve buna benzer hatalar yapabiliriz. Ya da kodlarımızda herhangi bir hata olmadığı halde uygulama çalıştırıldığında meydana gelen (run time error) çalışma zamanı hataları ortaya çıkabilir.
Kodlarımızın uygun yerlerine hata yakalama ve yönetimi blokları eklersek uygulamamızı çökmelerden, kesintilerden veya kilitlenmelerden koruyabilir, ya işlemimize devam edebilir ya da uygulamamızı normal yollardan sonlandırabiliriz.

Hata Yakalama Komutları
On Error Goto SatırEtiketi
On Error Goto 0
On Error Goto -1
On Error Resume Next

 Şimdi bu komutları sırasıyla inceleyelim,
On Error Goto SatırEtiketi
Bir hata oluştuğunda belirtilen etikete atlayarak oradan devam eder.
etiketin altındaki kodlar işletilir. İsterseniz burada hata numarasını öğrenerek işlem yapabilirsiniz, isterseniz bir uyarı verdirebilirsiniz. Aşağıdaki kod buna bir örnektir.

Private Sub cmdHesapla_Click()
On Error GoTo Hata
Me.txtSonuc = Me.txtbirincisayi.Value / Me.txtikincisayi.Value
Exit Sub
Hata:
If Err.Number = 11 Then
MsgBox "Sıfıra Bölme Hatası, Sayıyı Sıfıra Bölemezsiniz!", vbOKOnly, "Dikkat!"
Call cmdTemizle_Click
Exit Sub
End If
End Sub


access hata denetimi


access hata denetimi

access hata denetimi


Yukarıdaki kodda 1.satırda eğer bir hata olursa Hata adlı etikete git diyoruz. 2.sayıya sıfır yazdığımızda Sıfıra bölme hatası oluşacaktır. Bu durumda uygulama Hata etiketine giderek kullanıcıya uyarı mesajı verecektir.

On Error Goto 0
Bu komut geçerli olan hata yakalama bloğunu temizler, iptal eder.

Sub HataTesti0()
    On Error Goto 0
    Err.Raise Number:=11, Description:="Sıfıra Bölünme Hatası"
End Sub

On Error Goto -1
Bu komut hata yakalama bloğunu temizler, iptal eder ve yeniden tanımlanmasına izin verir. On Error Goto 0 ile arasındaki fark budur.

Sub HataTesti()
    On Error GoTo HataVar
    Err.Raise Number:=11, Description:="Sıfıra Bölünme Hatası"
    Exit Sub
HataVar:
    On Error GoTo -1 'Geçerli hata bloğunu temizle
    On Error GoTo BakaHataVar:'Yenisini tanımla
    Err.Raise Number:=13, Description:="Tip Uyumsuzluğu"
BakaHataVar:
    Msgbox "İkinci hata bloğunda tanımlanan hata"
End Sub

On Error Resume Next
Bu komutu kullandığınız yerde hata olursa hatayı görmezden gelerek kod bir sonraki satırdan işlemeye devam eder.

Peki Hata prosedüründen çıkmak için ne yapmamız gerekiyor?
Bu durumda aşağıdaki komutları kullanabilirsiniz.
  • Resume
  • Resume Next
  • Resume satıretiketi
  • On Error Goto -1
  • Exit Sub














Yorum Gönder

0 Yorumlar