Try dan Catch EXCEPTI ON HANDLI NG

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