Mengatasi Error VB6 Dengan Error Handler (On Error Resume Next dan On Error GoTo) | DASAR PROGRAMER

Mengatasi Error VB6 Dengan Error Handler (On Error Resume Next dan On Error GoTo)

Suatu error tidak dapat kita hindari dalam pembuatan sebuah program, walaupun anda sudah test berkali kali tapi belum tentu program kita sempurna tanpa cacat (error). Suatu error biasanya akan muncul jika program sudah dipakai oleh user (client) dan secara kasarnya anggap saja jika user itu orang awam yang tidak mengerti program, maka dari itu kemungkinannya user akan menekan segala tombol keyboard, atau menekan tombol yang salah baik sengaja maupun tidak, atau bahkan saat input data bilangan malah diisi huruf dan sebaliknya, dan masih banyak hal hal lain yang akan menyebabkan program kita menjadi error.
Cara yang saya akan share adalah dengan menggunakan error handler (error handling) yang sudah disediakan oleh vb6 itu sendiri, yaitu :
1. On Error Resume Next
Saya ambil contoh kasus misalkan anda mempunyai function perhitungan untuk membagi dua bilangan seperti dibawah ini :
 Function hitung_pembagian(bil1 As Integer, bil2 As Integer)
Dim hasil As Integer
hasil = bil1 / bil2
MsgBox hasil
End Function

Dan pemanggilannya saat kita tekan command1, Jika kita memanggil function itu dengan parameter 20 dan 0 (anggap saja itu dari textbox yang diinput user)
Private Sub Command1_Click()
hitung_pembagian 20, 0
End Sub

Maka hasilnya akan error karena bilangan tidak dapat dibagi dengan 0
Nah sekarang anda gunakan (sisispkan) perintah On Error Resume Next, yang artinya jika error maka proses akan tetap diteruskan dengan tidak menampilkan pesan error (by pass), tapi tentu nilai dari hasil pembagiannya akan tetap salah hanya tidak muncul pesan error saja.
Function hitung_pembagian(bil1 As Integer, bil2 As Integer)
On Error Resume Next
Dim hasil As Integer
hasil = bil1 / bil2
MsgBox hasil
End Function

Contoh lain misalnya di form_load anda mendeklarasikan variable dengan type integer, tapi anda mengisi nilai itu dengan 1000000 (1 juta) tentu akan error over flow karena integer hanya dapat menampung 32.000 saja.
Private Sub Form_Load()
Dim bil As Integer
bil = 1000000
End Sub

Tapi jika anda tambahkan On Error Resume Next maka tidak akan error tapi variable itu tetap salah nilainya (tidak terisi atau akan menjadi default 0)
Private Sub Form_Load()
On Error Resume Next
Dim bil As Integer
bil = 1000000
End Sub

2. On Error GoTo
Contoh kasus nya masih sama dengan yang diatas, sekarang coba anda lihat contoh dibawah ini, yang berwarna merah itu merupakan pola yang WAJIB diingat dalam pengunaan error handler ini. Kata Salah itu dapah anda ganti dengan kata apa saja sesuai keinginan. Sedangkan kata Exit Function itu disesuaikan dengan sub atau function, jika sub hitung/private sub, public sub maka tulis Exit Sub .
Function hitung_pembagian(bil1 As Integer, bil2 As Integer)
On Error GoTo Salah
Dim hasil As Integer
hasil = bil1 / bil2
MsgBox hasil

Exit Function
Salah:
MsgBox Err.Number & " : " & Err.Description, vbExclamation, "Test Error Handler"
End Function



Jika function itu dipanggil dengan parameter yang sama dengan contoh diatas yaitu 2 dan 0, maka error akan dialihkan (proses akan dipindahkan) ke bawah Salah: , Nah dibawahnya kita memasang pesan error number dan error description maka jika error itu terjadi akan menampilkan pesan error dengan format yang sudah kita buat tersebut. Bisa saja anda mengubahnya dengan pesan seperti ini :
MsgBox "Maaf Bilangan Pembagi Harus Lebih Besar Dari 0", vbExclamation, "Warning"
Jika anda tidak ingin ada pesan apapaun yang keluar maka dibawah Salah: anda hapus saja msgbox nya (kosongkan sintaknya). Atau anda dapat mem-filter error tersebut dengan memanfaatkan error number sebagai validasinya karena kemungkinan error kan banyak/tidak cuma hanya 1. Contohnya gunakan statement Select Case, Contoh :
Function hitung_pembagian(bil1 As Integer, bil2 As Integer)
On Error GoTo Salah
Dim hasil As Integer
hasil = bil1 / bil2
MsgBox hasil

Exit Function
Salah:
Select Case Err.Number
    Case 6 'Over Flow
                'Tulis perntah anda disini jika terjadi error overflow
    Case 11 'Division By Zero (error bilangan dibagi dengan 0)

                 'Tulis perntah anda disini jika terjadi error bilangan dibagi dengan 0
    Case ElseEnd Select 
End Function

Untuk mengetahui daftar error number dan error description anda dapat cari do google, selamat mencoba dan semoga bermanfaat.

Tags :
contoh error handle/handling vb6, cara menggunakan error handler/handling vb6, contoh menggunaan on error goto, cara menggunakan on error resume next, contoh penanganan error di vb6, daftar error number vb6





Jika Anda menyukai Artikel di blog ini, Silahkan klik disini untuk berlangganan gratis via email, dengan begitu Anda akan mendapat kiriman artikel setiap ada artikel yang terbit di dasarprogrammer.blogspot.com

0 komentar:

Posting Komentar