Dalam membuat atau mengembangkan suatu aplikasi, seorang programmer dapat menemui kesalahan dalam pengkodean program, entah itu logic error, syntax error, atau runtime error. Logic error terjadi karena program berjalan tidak sesuai harapan. Hal ini bisa diatasi dengan debugging. Syntax error terjadi karena aturan penulisan bahasa program yang tidak diikuti. Syntax error cenderung mudah diperbaiki karena compiler akan memberi tahu letak kesalahan. Runtime error terjadi ketika program sedang berjalan mendeteksi adanya operasi yang tidak mungkin dilaksanakan. Error yang terjadi saat program sedang running disebut dengan eksepsi (exception).
Exception
Exception adalah sebuah alur peristiwa yang menjalankan proses pada program, perisitwa tersebut berupa kesalahan atau error pada program yang dibuat dan terjadi karena beberapa faktor antara lain: kesalahan inputan, jenis format data yang dimasukkan salah, penggunaan array yang melebihi batas, dsb.
Ada beberapa exception yang sering muncul dalam aplikasi Java:
- IllegalArgumentException
- Muncul saat memanggil method dengan mengirimkan parameter yang tidak sesuai sehingga method tersebut tidak dapat memproses parameter yang dikirim.
- NumberFormatException
- Muncul saat mencoba mengubah string menjadi angka atau integer (casting), tapi string tersebut tidak terformat dengan benar.
- ArithmeticException
- Muncul saat perhitungan aritmetika error. Contohnya ketika membagi suatu angka dengan 0.
- IllegalStateException
- Muncul saat mencoba memanggil method di waktu yang salah. Misalnya saat menggunakan URLConnection untuk terhubung kembali ke alamat yang sudah terhubung.
- IOException
- Muncul saat menginput string, padahal yang diminta angka atau integer.
Exception Handling
Java memberikan akses kepada developer untuk mengambil objek bug yang terjadi dengan mekanisme yang dikenal sebagai exception handling. Exception handling merupakan fasilitas Java yang memberikan fleksibilitas kepada developer untuk menangkap bug atau error yang terjadi ketika program berjalan.
Ada beberapa keyword penting dalam exception handling Java:
1. try
Digunakan untuk menentukan bagian statement program di mana akan terjadi exception. Blok dari try ini harus diikuti dengan catch atau finally.
2. catch
Digunakan untuk menangani error atau exception yang terjadi. Blok catch ini tidak dapat berdiri sendiri tanpa blok try. Block catch dapat diikuti oleh blok finally.
3. finally
Digunakan untuk mengeksekusi bagian code yang penting dari program. Bagian ini akan tetap dijalankan baik terjadi exception maupun tidak.
4. throw
Digunakan untuk melempar exception yang terjadi di mana throw digunakan dalam body dari code yang ada.
5. throws
Digunakan untuk mendeklarasikan exception yang akan terjadi pada bagian fungsi tersebut.
Implementasi
Berikut ini adalah contoh menangani InputMismatchException ketika membaca sebuah input menggunakan try dan catch.
Ketika mengeksekusi input.nextInt(), InputMismatchException akan muncul jika user memasukkan inputan selain integer.
Output yang valid:
Misalkan nilai 6,9 diinput, maka InputMismatchException terjadi dan kontrol program akan dipindahkan ke blok catch. Pernyataan di dalam blok tersebut akan dieksekusi.
Pernyataan input.nextLine() akan memusnahkan input line saat ini dan kemudian user dapat memasukkan input pada line baru.
Variabel lanjutkanInput mengontrol loop. Nilai inisialnya adalah true dan kemudian diubah menjadi false ketika nilai valid diterima sehingga tidak perlu lagi untuk melanjutkan input angka.
Berikut ini adalah contoh menangani exception menggunakan try, catch, dan throw.
Output yang valid:
Pada program tersebut, jika user menginputkan nilai badak lebih dari 5, maka akan terjadi error. Exception/error yang telah ditangkap oleh blok try akan diubah menjadi objek e pada pernyataan catch, lalu menampilkan pesan error tersebut menggunakan printStackTrace().
Komentar
Posting Komentar