Eksepsi terjadi di sebuah metoda. Jika eksepsi tersebut ingin diproses atau ditangani oleh pemanggil atau pengguna metoda (caller), obyek eksepsi harus dibuat dan kemudian meleparkannya untuk diinformasikan kepada pemanggil (pengguna) metoda tersebut. Jika eksepsi dapat ditangani di dalam metoda dimana eksepsi terjadi, maka eksepsi tidak perlu dilempar.
Baca artikel:
- Penggolongan Eksepsi (Exception) Di Program Java
- Perbedaan Eksepsi (Exception) Dan Event Di Program Java
1. Deklarasi eksepsi.
Di dalam mendeklarasikan eksepsi di sebuah metoda, diperlukan kata kunci throws di deklarasi metoda dengan sintak sebagai berikut:
public void nama-metoda() throws nama-eksepsi
contohnya,
public void printObjek() throws ClassNotFoundException
Apabila metoda tersebut akan melempar lebih dari satu macam eksepsi, Anda dapat menambahkan eksepsi berikutnya dengan pemisah koma sebagaimana sintak di bawah ini.
public void nama-metoda() throws nama-eksepsi1, nama-eksepsi2, …, nama-eksepsi3
Error dan RuntimeError beserta kelas turunannya (unchecked exception) dapat terjadi di kode program Java mana saja sehingga tidak perlu mendeklarasikan eksepsi dari kelas tersebut. Lain halnya dengan checked exception. Setiap metoda harus mendeklarasikan tipe dari checked exception yang mungkin dilempar agar pemanggil atau pengguna metoda tersebut mengetahuinya.
2. Melempar eksepsi.
Ketika program mendeteksi adanya eksepsi, program dapat membuat obyek dari tipe eksepsi tersebut dan kemudian melemparkanya (throw). Misalnya, metoda parseInt dari kelas Integer hanya menerima argumen berupa string numerik integer. Apabila argumen yang diberikan ke metoda tersebut adalah selain string numerik integer, maka program akan membuat obyek dari kelas IllegalArgumentException dan melemparkannya seperti pernyataan di bawah ini.
IllegalArgumentException iae = new IllegalArgumentException("Argumen Salah"); throw iae;
atau dengan cara yang lebih singkat seperti pernyataan di bawah ini.
throw new IllegalArgumentException("Argumen Salah");
Proses melempar eksepsi ini dinamakan dengan throwing exception. Anda perlu perhatikan bahwa kata kunci untuk mendeklarasikan eksepsi adalah throws, sedangkan kata kunci untuk melemparkan obyek kelas eksepsi adalah throw.
3. Menangkap eksepsi.
Ketika sebuah eksepsi terjadi dan dilempar, eksepsi tersebut dapat ditangkap dan kemudian ditangani (handling) di dalam blok try-catch.
try { // pernyataa yang mungkin mendeteksi eksepsi pernyataan; } catch (Eksepsi1 eksepsi1) { penangan (handler) eksepsi1; } catch (Eksepsi2 eksepsi2) { penangan (handler) eksepsi2; } … catch (EksepsiN eksepsiN) { penangan (handler) eksepsiN; }