Belajar Pemrograman Java Dari Dasar

Menangkap Dan Menangani Exception Dengan Blok try-catch Pada Program Java

Sebelumnya anda sudah mengetahui cara untuk mendeklarasikan dan melemparkan exception. Jadi, ketika exception tersebut dilemparkan, maka dapat ditangkap dengan blok try-catch yang akan dijelaskan pada kesempatan kali ini.

Blok tersebut adalah sebagai berikut:

Bila pada blok try tidak ditemukan exception maka blok catch akan diabaikan. Sebaliknya, jika terdapat exception pada blok try maka program akan melewatkan (skip) sisa pernyataan dari blok tersebut dan akan mulai mencari kode untuk menangani exception tersebut.


Menangkap Dan Menangani Exception Dengan Blok try-catch Pada Program Java


Kode yang digunakan untuk menangani exception itu disebut dengan exception handler.

Setiap blok catch diperiksa secara bergantian. Dari yang pertama sampai dengan yang terakhir. Ini bertujuan untuk melihat apakah tipe dari objek exception adalah merupakan instance dari class exception dalam blok catch.

Jika tipe objek itu sesuai maka objek exception akan ditetapkan pada variabel yang dideklarasikan dan kode dalam blok catch akan dieksekusi.

Jika handler tidak ditemukan maka Java akan keluar dari method ini dan kemudian akan mem-pass-kan exception pada method yang memanggil method, dan proses akan terus berlanjut sampai dengan handler ditemukan.

Pada akhirnya, jika handler masih tetap tidak ditemukan juga pada semua method berantai tersebut maka program akan dihentikan dan pesan error akan ditampilkan pada konsol.

Proses untuk menemukan handler itu disebut dengan menangkap exception.

Mekanisme Exception Handling Pada Method Berantai

Misalkan main method memanggil method_1, method_1 itu memanggil method_2 dan method_2 memanggil method_3. Sementara itu, method_3 melemparkan exception. Seperti di bawah ini:

Maka mekanismenya adalah:
  • Bila tipe exception adalah Exception_3 dan ditangkap oleh blok catch untuk menangani exception exc_3 pada dalam method_2 maka pernyataaan_5 akan diabaikan, dan pernyataan_6 akan dieksekusi.

  • Bila tipe exception adalah Exception_2 maka method_2 akan dibatalkan, kontrol akan dikembalikan ke method_1, dan exception ditangkap oleh blok catch untuk menangani exc_2 dalam method_1, sedangkan pernyataan_3 diabaikan dan pernyataan_4 akan dieksekusi.

  • Bila tipe exception adalah Exception_1 maka method_1 akan dibatalkan, kontrol akan dikembalikan ke main method, dan exception ditangkap oleh blok catch untuk menangani exc_1 dalam main method, sedangkan pernyataan_1 diabaikan dan pernyataan_2 akan dieksekusi.

  • Jika exception tidak dapat ditangkap oleh method_2, method_1, ataupun main method, maka program akan dihentikan dan pernyataan_1 serta pernyataan_2 tidak akan dieksekusi.
Berbagai class exception dapat diturunkan dari superclass. Oleh karena itu, bila blok catch menangkap objek-objek exception dari superclass maka ia juga bisa menangkap objek-objek exception subclass dari superclass tersebut.


Urutan dalam memberikan spesifikasi exception pada blok catch adalah hal yang penting. Jika aturan yang berlaku tidak diikuti maka compile error dapat terjadi. Aturan ini adalah mengharuskan untuk blok catch untuk tipe subclass harus muncul lebih dahulu sebelum blok catch untuk tipe superclass.

Misalnya, urutan di bawah ini akan menyebabkan compile error karena RuntimeException adalah merupakan subclass dari Exception.

Dan contoh yang benar adalah seperti ini:


Selain itu, jika berurusan dengan checked exception, maka anda harus memanggilnya dalam blok try-catch atau mendeklarasikan untuk melemparkan exception dalam memanggil method.

Sebagai contoh, misalkan method a memanggil method b , dan method b mungkin melemparkan checked exception, contohnya IOException, maka anda harus menulisnya seperti contoh 1 dan 2 berikut ini:

Share on Facebook
Share on Twitter
Share on Google+

Tempat berbagi pengetahuan untuk bahasa pemrograman Java

Related : Menangkap Dan Menangani Exception Dengan Blok try-catch Pada Program Java