MODUL 9 EXCEPTION HANDLING TUJUAN Setelah menyelesaikan modul ini, praktikan dapat: Memahami konsep Exception Handling. Praktikan dapat mengimplementasikan Exception Handling dalam bahasa Java. DASAR TEORI Eksepsi (Exception) adalah kondisi abnormal yang mungkin terjadi selama eksekusi program dimana program berakhir secara tidak normal. Kondisi ini harus ditangani sehingga eksekusi tetap bisa berakhir secara normal. Dalam java, eksepsi direpresentasikan sebagai sebuah objek (everything is object). Exception class digunakan untuk menangani exception yang terjadi dalam program. Exception class ini terdapat dalam package java.lang. Ada lima keyword dalam penanganan eksepsi yaitu:, catch, finally, throw dan throws. Bentuk penggunaannya secara umum adalah: // kode yang mungkin mengakibatkan eksepsi catch(tipeeksepsi1 objekeksepsi) //kode untuk menangani eksepsi yang cocok dengan //TipeEksepsi1 catch(tipeeksepsin objekeksepsi) //kode untuk menangani eksepsi yang cocok dengan //TipeEksepsiN finally //kode yang pasti dieksekusi setelah eksekusi blok -catch //diatas Secara logika, blok -catch-finally bekerja sebagai berikut yaitu baris-baris perintah yang memiliki kemungkinan terjadi error pada saat runtime diletakan pada blok. Apabila pada saat eksekusi terjadi error, maka yang berikutnya dieksekusi adalah blok catch yang telah disiapkan untuk menangani berbagai macam eksepsi yang 1 Praktikum Pemrograman Berorientasi Objek Modul 9
mungkin terjadi. Sedangkan blok finally merupakan bagian dari program yang pasti akan dieksekusi. Beberapa macam eksepsi yang sering terjadi adalah ArrayIndexOutOfBoundException, ArithmeticException serta NullPointerException. User Defined Exception Eksepsi yang dibuat sendiri (User defined exception) digunakan untuk menangani exception khusus yang tidak disediakan oleh java dengan cara membuat kelas exception baru yang merupakan turunan dari kelas Exception. Throw dan throws merupakan kata kunci yang digunakan dalam mendefiniskan eksepsi kelas buatan sendiri. Kerangka penggunaan throw-throws yaitu : class EksepsiSendiri extends Exception public String getmessage() return "Pesan Kesalahan"; class YangDigunakan void metode() throws EksepsiSendiri //isi method //kondisi eksepsi throw new EksepsiSendiri(); //isi method 2 Praktikum Pemrograman Berorientasi Objek Modul 9
DEMO PROGRAM DemoEksepsi1.java package demoeksepsi1; public class DemoEksepsi1 public static void main(string[] args) int[] arr=10,11; int x=2; System.out.println("Bagian Try"); for (int i=0;i<=x;i++) System.out.print("Elemen Array index ke- "+i+" :"); System.out.println(arr[i]); catch(arrayindexoutofboundsexception e) System.out.println("Indeks array diluar cakupan"); finally System.out.println("Bagian finally -> pasti dieksekusi"); DemoEksepsi2.java package demoeksepsi2; public class DemoEksepsi2 static private int[] arr; static private int x; DemoEksepsi2(int[] Arr,int X) arr=arr; x=x; public static void proses() 3 Praktikum Pemrograman Berorientasi Objek Modul 9
System.out.println("Bagian Try"); int arrint; for (int i=arr.length-1;i>=0;i--) System.out.print("Elemen Array index ke-"+i+" :"); System.out.println(arr[i-2]); arrint=arr[i]; System.out.print("Hasil Perhitungan : "); System.out.println(arrInt/(x-i)); catch(arrayindexoutofboundsexception e) System.out.println("Indeks array diluar cakupan"); catch(arithmeticexception e) System.out.println("Pembagian Dengan Nol"); finally System.out.println("Bagian finally -> pasti dieksekusi"); public static void main(string[] args) int [] arrobj=1,2,3,4; DemoEksepsi2 Obj1 = new DemoEksepsi2(arrObj,7); System.out.println("Objek 1"); Obj1.proses(); DemoEksepsi2 Obj2 = new DemoEksepsi2(arrObj,3); System.out.println("Objek 2"); Obj2.proses(); 4 Praktikum Pemrograman Berorientasi Objek Modul 9
ThrowExample.java package throwbyexample; class IllegalValueException extends Exception public String getmessage() return "Error in the values supplied to the function"; class UserTrial int val1, val2; public UserTrial(int a, int b) val1 = a; val2 = b; void show() throws IllegalValueException if ((val1 < 0) (val2 > 0)) throw new IllegalValueException(); System.out.println ("Value 1 = " + val1); System.out.println ("Value 2 = " + val2); public class ThrowExample public static void main (String args[]) UserTrial values = new UserTrial(-1, 1); values.show(); catch (IllegalValueException e) System.out.println (e.getmessage()); 5 Praktikum Pemrograman Berorientasi Objek Modul 9