SKIP TO MAIN CONTENT
vb6-blog.blogspot.com blog uses cookies to help google service, personalise ads, and more. By visiting us you agree with our privacy policy. For more information: Cookies Policy | Privacy Policy

Handle Error

Cara Mengatasi/Handle Error pada VB6

Membuat project di Visual Basic 6.0 dengan segudang Error memang sungguh menjengkelkan. Apalagi Errornya gak ketahuan dan gak dimengerti kenapa itu bisa terjadi. Untuk itu penting adanya handle-error atau solusi yang bisa menjadi "Warning" bagi developer Visual Basic 6.0 untuk segera mengetahui Jenis Error apa yang tengah terjadi. Atau, Kenapa error itu bisa terjadi.

Berikut ini adalah tutorial handle error sesuai pengalaman penulis.
Selamat menyimak!

On Error Resume Next

Apa maksudnya?
On Error Resume Next kita gunakan apabila seluruh project yang telah selesai dibuat diyakini tidak akan terjadi bug atau error. Jadi, tidak serta merta kita tuliskan kode On Error Resume Next ini ditiap blok source code.
Lalu, apa maknanya? On Error Resume Next itu memiliki makna sbb:
"Bila terjadi error, maka lanjutkan saja! abaikan! lanjutkan apa yang diminta oleh user untuk dieksekusi.

Misalnya:

Private Sub cmdSimpan_Click()
With Adodc1.Recordset
        .Find "ID_User='"+txtID.Text+"'",,AdSearchForward,1
        If .EOF then
                .AddNew
                        !ID_User = txtID.Text
                        !Nama_Lengkap = txtNama.Text
                        !Alamat = txtAlamat.Text
                        !Telp = txtTelp.Text
               .Update        
                MsgBox "Data Berhasil Disimpan!", vbInformation, "Simpan: Sukses"
                Kosongkan_Form
                Exit sub
        Else
                 MsgBox "Data ID User sudah ada didatabase!", vbCritical, " Data Found"
                 txtID.SetFocus
                 Exit Sub
         End If    
End With
End Sub
Pada contoh blok source code diatas, secara sekilas, nampak benar, tapi ternyata memunculkan Error pada saat Eksekusinya. Apa error yang mungkin terjadi dari contoh tersebut?

Variabel Not Defined!

Error tersebut mengacu pada If .EOF then.
Hal ini disebabkan karena diatas sekali tidak disebutkan (baca: dipanggil) koneksinya, yang seharusnya menjadi:

Private Sub cmdSimpan_Click()
KONEKSI_DATABASE ' Panggil ini dulu baru mulai dengan dibawahnya.
With Adodc1.Recordset
        .Find "ID_User='"+txtID.Text+"'",,AdSearchForward,1
        If .EOF then
                .AddNew
                        !ID_User = txtID.Text
                        !Nama_Lengkap = txtNama.Text
                        !Alamat = txtAlamat.Text
                        !Telp = txtTelp.Text
               .Update        
                MsgBox "Data Berhasil Disimpan!", vbInformation, "Simpan: Sukses"
                Kosongkan_Form
                Exit sub
        Else
                 MsgBox "Data ID User sudah ada didatabase!", vbCritical, " Data Found"
                 txtID.SetFocus
                 Exit Sub
         End If    
End With
End Sub

KONEKSI_DATABASE pada contoh diatas mengacu pada blok koneksi seperti yang digambarkan pada bahasan sebelumnya. Lihat Koneksi_Database!

On Error Go To ErrPesan

Untuk memastikan tidak akan ada error atau akan ada error nantinya, sebaiknya menggunakan handle error seperti dibawah ini!

On Error Go To errPesan

kemudian, pada baris kode dibawah sekali atau sebelum End Sub, Tambahkan keterangan Pesan Errornya yang menurut anda dapat memberi gambaran nantinya akan jenis error yang terjadi untuk diperbaiki selanjutnya.

Exit Sub 'Jangan lupa! sebelum menuliskan Keterangan Error tersebut, tambahkan Exit Sub diatasnya.
errPesan:
Msgbox "Error! Periksa Database atau Internal Error 001!"
End Sub

Sehingga menjadi sebagai berikut:

Private Sub cmdSimpan_Click()
On Error Go To errPesan
KONEKSI_DATABASE ' Panggil ini dulu baru mulai dengan dibawahnya.
With Adodc1.Recordset
        .Find "ID_User='"+txtID.Text+"'",,AdSearchForward,1
        If .EOF then
                .AddNew
                        !ID_User = txtID.Text
                        !Nama_Lengkap = txtNama.Text
                        !Alamat = txtAlamat.Text
                        !Telp = txtTelp.Text
               .Update        
                MsgBox "Data Berhasil Disimpan!", vbInformation, "Simpan: Sukses"
                Kosongkan_Form
                Exit sub
        Else
                 MsgBox "Data ID User sudah ada didatabase!", vbCritical, " Data Found"
                 txtID.SetFocus
                 Exit Sub
         End If    
End With
Exit Sub
errPesan:
Msgbox "Error! Periksa Database atau Internal Error 001!"
End Sub
Keterangan Rincian:
Pada contoh handle error diatas, penulis mencantumkan 2 jenis error, yaitu:
  • Periksa Database,
  • Internal Error 001
Pernyataan [Periksa Database] ditujukan kepada user/ pengguna juga sekaligus programmer VB6-nya. Disini dimaksudkan apakah Databasenya ada dalam direktori program tersebut? dengan kata lain, Ada gak tuh databasenya? kalo gak ada ya Error hasilnya :D
Kedua, maksud dari [Internal Error 001] itu adalah bahwa "Telah terjadi error pada blok ke 001 yang merupakan referensi error programmernya yang biasanya ditulis diatas blok source code tersebut. 001 ini juga mengacu pada, misalnya, Lupa menaruh KONEKSI_DATABASE seperti yang telah diterangkan diatas, dan sebagainya. Intinya, Apa kemungkinan error yang akan terjadi, dan apa kode yang cocok untuk menamainya? dan, apakah perlu dibuatkan referensi errornya buat programmer project tersebut agar segera bisa ditemukan solusinya dan cepat memperbaikinya? Itu semua tergantung pada programmer atau anda-lah yang menyusunnya agar handle error ini bisa efektif seperti yang diharapkan.

Contoh penulisan referensi handle Error pada blok source code agar cepat ditemukan dan diperbaiki!

' *********** Error: 001
Private Sub cmdSimpan_Click()
On Error Go To errPesan
KONEKSI_DATABASE
With Adodc1.Recordset
        .Find "ID_User='"+tx ............
.................
.............
.... dst
End Sub
Lalu, buatlah daftarnya sebagai berikut:

No
Kode
Error
Nama
Project
Tanggal
Project
Kemungkinan
Error


Tambahan:
Selain menggunakan On Error Resume Next, banyak developer Visual Basic 6.0 yang mencantumkan angka 0 (nol) sebagai nilai yang setara dengan On Error Resume Next, seperti dibawah ini:

On Error Go To 0

Akhirnya, semuanya tergantung anda sebagai Programmer Project Visual Basic 6.0. Disini penulis mencoba memberikan solusi yang terbaik agar error dapat di Handle (baca: ditangani) dan dapat segera mengatasinya.
Sukses!

Newer Post Lihat Artikel vb6 Sebelumnya *) +vb6.vbp
Back to vb6 Homepage