Pernah Bertanya, "Sebenarnya Error Apa yang Terjadi?"
Ketika sebuah program VBA mengalami Runtime Error, biasanya kita hanya melihat kotak dialog yang menampilkan pesan kesalahan.
Namun, di balik pesan tersebut, VBA sebenarnya menyimpan banyak informasi.
Misalnya:
-
Nomor error.
-
Deskripsi error.
-
Sumber error.
-
Status error terakhir.
Seluruh informasi tersebut dapat diakses melalui sebuah objek bawaan VBA yang bernama Err.
Dengan mengenal objek ini, Anda tidak hanya mengetahui bahwa program mengalami error, tetapi juga mengapa error itu terjadi.
Apa Itu Objek Err?
Err adalah objek bawaan VBA yang secara otomatis menyimpan informasi tentang Runtime Error terakhir yang terjadi.
Objek ini akan diperbarui setiap kali VBA menemukan Runtime Error.
Karena itulah, objek Err sering digunakan bersama perintah On Error untuk membuat proses penanganan error menjadi lebih informatif.
Kapan Objek Err Digunakan?
Secara umum, objek Err digunakan setelah program menangkap Runtime Error.
Ilustrasinya seperti berikut.
Program Berjalan
│
▼
Terjadi Runtime Error
│
▼
On Error Menangkap Error
│
▼
Objek Err Menyimpan Informasi
│
▼
Program Membaca Informasi Error
Dengan kata lain, Err berfungsi sebagai "catatan" mengenai error terakhir yang dialami program.
Properti yang Paling Sering Digunakan
Objek Err memiliki beberapa properti, tetapi ada tiga yang paling sering digunakan.
| Properti | Fungsi |
|---|---|
Err.Number |
Menyimpan nomor error. |
Err.Description |
Menyimpan penjelasan mengenai error. |
Err.Source |
Menyimpan sumber atau lokasi error. |
Ketiga properti tersebut sudah cukup untuk menangani sebagian besar kebutuhan Error Handling.
Mengenal Err.Number
Properti ini berisi nomor identitas dari Runtime Error.
Contoh:
Sub Contoh()
On Error Resume Next
Worksheets("Data").Activate
MsgBox Err.Number
End Sub
Jika worksheet Data tidak ditemukan, Err.Number akan menampilkan nomor error yang sesuai.
Nomor ini berguna ketika Anda ingin menangani beberapa jenis error dengan cara yang berbeda.
Mengenal Err.Description
Nomor error sering kali sulit dipahami.
Karena itu, VBA juga menyediakan deskripsi singkat melalui properti Description.
Contoh:
Sub Contoh()
On Error Resume Next
Worksheets("Data").Activate
MsgBox Err.Description
End Sub
Hasilnya bisa berupa pesan seperti:
Subscript out of range
Informasi ini jauh lebih mudah dipahami dibandingkan hanya melihat nomor error.
Mengenal Err.Source
Selain nomor dan deskripsi, Anda juga dapat mengetahui sumber error menggunakan properti Source.
MsgBox Err.Source
Properti ini berguna ketika project memiliki banyak module atau memanfaatkan library eksternal.
Menggabungkan Beberapa Properti
Dalam praktiknya, beberapa properti sering ditampilkan secara bersamaan.
Sub Contoh()
On Error Resume Next
Worksheets("Laporan").Activate
If Err.Number <> 0 Then
MsgBox "Nomor Error : " & Err.Number & vbCrLf & _
"Pesan : " & Err.Description
End If
End Sub
Dengan cara ini, pengguna atau programmer memperoleh informasi yang lebih lengkap mengenai error yang terjadi.
Membersihkan Informasi Error
Setelah error selesai ditangani, objek Err sebaiknya dibersihkan.
Gunakan perintah berikut.
Err.Clear
Perintah tersebut menghapus informasi mengenai Runtime Error terakhir.
Contoh:
If Err.Number <> 0 Then
MsgBox Err.Description
Err.Clear
End If
Hal ini membantu mencegah informasi error lama terbawa ke proses berikutnya.
Studi Kasus
Bayangkan Anda ingin membuka worksheet Rekap.
Sub BukaRekap()
On Error Resume Next
Worksheets("Rekap").Activate
If Err.Number <> 0 Then
MsgBox "Error " & Err.Number & vbCrLf & _
Err.Description
Err.Clear
End If
On Error GoTo 0
End Sub
Jika worksheet tidak tersedia, pengguna akan memperoleh informasi yang lebih jelas dibandingkan pesan bawaan VBA.
Kesalahan yang Sering Terjadi
Tidak Memeriksa Err.Number
Sebagian programmer langsung menampilkan Err.Description tanpa memastikan bahwa benar-benar terjadi Runtime Error.
Biasakan memeriksa Err.Number terlebih dahulu.
Lupa Menggunakan Err.Clear
Jika informasi error tidak dibersihkan, nilai pada objek Err dapat tetap tersimpan dan berpotensi membingungkan proses berikutnya.
Menggunakan Err Tanpa On Error
Objek Err umumnya digunakan bersama mekanisme Error Handling.
Tanpa On Error, Runtime Error biasanya sudah menghentikan program sebelum Anda sempat membaca isi objek Err.
Kapan Sebaiknya Menggunakan Objek Err?
Objek Err sangat berguna ketika Anda ingin:
-
Menampilkan pesan yang lebih informatif.
-
Mengetahui penyebab Runtime Error.
-
Mencatat error ke log.
-
Membedakan perlakuan berdasarkan nomor error.
-
Membantu proses debugging.
Tips Praktis
✔ Gunakan Err.Number untuk memastikan apakah Runtime Error benar-benar terjadi.
✔ Gunakan Err.Description untuk memberikan informasi yang mudah dipahami.
✔ Gunakan Err.Clear setelah proses penanganan error selesai.
✔ Padukan objek Err dengan On Error GoTo atau On Error Resume Next agar Error Handling menjadi lebih efektif.
Ringkasan
| Properti | Kegunaan |
|---|---|
Err.Number |
Menampilkan nomor Runtime Error. |
Err.Description |
Menampilkan penjelasan mengenai Runtime Error. |
Err.Source |
Menampilkan sumber atau asal Runtime Error. |
Err.Clear |
Menghapus informasi Runtime Error yang tersimpan. |
Kesimpulan
Objek Err merupakan bagian penting dari mekanisme Error Handling di VBA. Melalui objek ini, Anda dapat memperoleh informasi rinci mengenai Runtime Error yang terjadi, mulai dari nomor error hingga deskripsinya. Informasi tersebut sangat membantu dalam proses debugging maupun ketika ingin menampilkan pesan yang lebih jelas kepada pengguna.
Dengan menggabungkan Err dan On Error, aplikasi VBA tidak hanya menjadi lebih stabil, tetapi juga lebih mudah dipelihara dan dikembangkan.
