Rekayasa Perangkat Lunak
187
Kode program di atas, secara sintaks tidak salah. Namun ada kesalahan yang fatal yaitu ada pembagian dengan 0. Yaitu a = 5 dibagi b = 0. Kesalahan
seperti ini sering terjadi karena memang tidak kentara bila kita tidak cermat. Apabila kita kompilasi kode program tersebut maka kompilasi akan berlangsung
sukses. Namun bila kita jalankan kita tidak akan mendapatkan hasil tetapi program akan menampilkan pesan terjadinya exception atau kondisi tidak normal
Gambar 8.8 dan program akan berhenti.
Gambar 8.8. Peringatan terjadinya kesalahan. Pesan pada Gambar 8.8 tersebut menginformasikan tipe
exception yang terjadi pada baris dimana
exception itu berasal. I nilah aksi default yang terjadi bila terjadi
exception yang tidak tertangani. Jika tidak terdapat kode yang menangani
exception yang terjadi, aksi default akan bekerja otomatis. Beberapa tipe e
xception yang umum antara lain:
x
ArithmeticException. Exception karena kesalahan yang ada hubungannya dengan perhitungan, misalnya pembagian dengan 0.
x
ArrayI ndexOutOfBoundException. Exception karena membaca indeks array diluar batas yang ditetapkan.
x
NullPointerException. Kesalahan karena pointer yang tidak berisi null
x
Dan lain-lain
8.6.2. Try dan Catch
Try digunakan untuk membuat blok yang berisi pernyataan-pernyataan yang mungkin menimbulkan
exception. Apabila dalam proses eksekusi pernyataan-pernyataan pada blok tersebut terjadi
exception maka exception akan dilempar ke bagian blok penangkap
exception yang dibuat dengan kata kunci
catch. Perhatikan contoh berikut in. Contoh 8.15. Exception dengan try-catch.
public class DivByZero { public static void mainString args[] {
int a = 5, b = 0, c; try
{ c
= ab;
Di unduh dari : Bukupaket.com
188
Rekayasa Perangkat Lunak
} catch ArithmeticException exc { Reaksi
jika terjadi
exception System.out.printlnexc;
} System.out.printlnSetelah
exception; }
}
Kode program pada contoh 8.15 ini adalah pengembangan dari kode program sebelumnya. Pernyataan c = a b merupakan pernyataan yang kita uji
apakah mengandung exception atau tidak. Jika terjadi exception maka
exception akan dilempar ke bagian catch. Exception yang kita periksa adalah ArithmeticException. Reaksi yang muncul jika terjadi exception adalah
menjalankan pernyataan
System.out.printlnexc;.
Dengan mekanisme seperti ini maka program tidak akan dipaksa berhenti dan perintah
setelah blok try-catch tetap bisa dijalankan. Gambar 8.9. menunjukkan hasil
eksekusi kode program di atas. Bandingkan dengan Gambar 8.8.
Gambar 8.9. Output dari try-catch. Umumnya
exception pada satu masalah tidak hanya satu. Pada contoh 8.16 berikut ini, kita menggunakan beberapa tipe
exception untuk memeriksa kemungkinan terjadi
exception. Ketik kode program berikut kemudian jalankan dan amati apa yang terjadi.
Contoh 8.16. Exception dengan try-catch.
class BanyakEksepsi { public static void testint a, int b {
try { int c = a b;
System.out.printlnHasil bagi: + c;
int[] Arr = {1,2,3,4,5}; array dengan 5 elemen Arr[10] = 11; mengakses indeks ke-10
} catch ArithmeticException ae { System.out.printlnTerdapat pembagian dengan 0;
System.out.printlnae; } catch ArrayIndexOutOfBoundsException oobe {
System.out.printlnIndeks di luar rentang; System.out.printlnoobe;
} }
Di unduh dari : Bukupaket.com
Rekayasa Perangkat Lunak
189
public static void mainString[] args { test4, 0; menimbulkan ArithmeticException
System.out.println;
test12, 4;
menimbulkan ArrayIndexOutOfBoundsException
}
} 8.6.3.
Throw
Disamping menangkap exception, Java juga mengijinkan seorang user
untuk melempar throw sebuah exception. Perhatikan contoh 8.17 berikut ini.
Contoh 8.17. Exception dengan try-catch dan throw.
class ThrowDemo { public static void mainString args[]{
String input = Salah input; try
{ if
input.equalsSalah input
{ throw
new RuntimeExceptionDemonstrasi Throw;
}
else {
System.out.printlninput; }
System.out.printlnSetelah throw;
} catch RuntimeException e { System.out.printlnException
ditangkap di sini.; System.out.printlne;
} }
}
Perhatikan pada pernyataan yang dimulai dari perintah if. Kalau diartikan pernyataan tersebut adalah jika nilai variabel input sama dengan “ Salah input”
maka lemparkan exception dengan menampilkan “Demonstrasi Throw”. Output
dari kode program ini akan tampak seperti pada Gambar 8.10.
Gambar 8.10. Output program dengan throw.
Di unduh dari : Bukupaket.com
190
Rekayasa Perangkat Lunak
8.6.4. Finally