Di penanganan event, obyek pendengar harus diregistrasi oleh obyek sumber, misalnya obyek kelas JButton. Aksi pengguna saat mengklik obyek button akan memicu action event. Obyek sumber akan memberitahu obyek pendengar dengan meminta handler yang diimplementasikan di obyek pendengar. Bila tidak ada satupun obyek pendengar diregistrasi oleh obyek sumber, maka event akan diabaikan. Tidak demikian dengan eksepsi, ketika eksepsi terjadi, eksepsi harus ditangani oleh program, bila tidak, program akan berakhir secara tidak normal.
Java sendiri mempunyai sejumlah kelas eksepsi yang telah terdefinisi (predefined exception class) seperti Exception, Error, RuntimeException, ClassNotFoundException, ArithmeticException dan IndexOutOfBoundsException. Semua kelas eksepsi tersebut berasal dari kelas Throwable yang merupakan root class dari eksepsi. Kelas Throwable terletak di paket java.lang, sedangkan kelas eksepsi turunan dapat berada di paket Java mana saja, misalnya paket java.awt.
Berikut ini adalah tabel beberapa metoda penting yang terdapat di kelas Throwable:
Metoda Penting Dari Kelas Throwable
Metoda | Keterangan |
---|---|
getMessage() | Mengembalikan pesan yang merupakan rincian dari eksepsi yang sedang terjadi. |
getCause() | Mengembalikan penyebab dari eksepsi yang diwakili oleh obyek Throwable. |
toString() | Mengembalikan string yang terdiri dari nama kelas dirangkai dengan string hasil dari metoda getMessage. |
Eksepsi terjadi di metoda. Ketika kondisi tidak normal (error) tejadi, eksepsi akan dimunculkan atau dilemparkan (thrown) dalam bentuk obyek eksepsi (exception object). Alir kontrol normal program berhenti dan obyek eksepsi kemudian dibuat (created) untuk menangani kondisi eksepsi yang terjadi dan kemudian menyerahkannya ke sistem.