Algoritma & Pemrograman 1 Exception Handling
Exception? Teknik yang dipakai dalam Java dalam menangani kondisi yang tidak biasa dalam menjalankan operasi normal dalam program Peristiwa yang menjalankan alur proses normal pada program Peristiwa ini biasanya terjadi berupa error dari beberapa bentukdikarenakan program kita berakhir tidak normal c/ int []arr = new int[100]; //lebih disarankan daripada, int []arr; arr = new int[100]; Array d/ indeks 0 s/d n-1disini tidak ada elemen array arr[n]akan menyebabkan array index out-of-bounds exception: exception ArrayIndexOutOfBounds terjadi jika mencoba mengakses array yang tidak ada NumberFormatExceptionterjadi jika kita mencoba melalui parameter bukan angka dalam method Integer.parseInt.
Menangani Exception Sintaks try-catch-finally: try{ //pernyataan exception } catch( <exceptionType…n> <varName…n> ){ //aksi yang dapat dijalankan, jika exception finally{ //tambahkan kode terakhir di sini Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam blok catch Kode dalam blok finally akan selalu di-eksekusi
Alur kejadian blok try-catch-finally Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu blok finally. Blok catch dan blok finally harus selalu muncul dalam konjungsi dengan blok try, dan diatas urutan Blok try harus diikuti oleh paling sedikit satu blok catch or satu blok finally, or keduanya. Setiap blok catch mendefinisikan sebuah penanganan exception. Header dari blok catch harus membawa satu argumen, dimana exception pada blok tersebut akan ditangani. Exception harus menjadi class pelempar atau satu dari subclassesnya
c/ Next AplikasiexceptionCommondLine.java, exceptioncontoh.java Run Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 at ExceptionExample.main(ExceptionExample.java:5) Antisipasi: di method main try{ System.out.println( args[1] ); }catch( ArrayIndexOutOfBoundsException exp ){ System.out.println("Exception caught!"); }
Exception Multiple Catch Penanganan exception lebih dari satu Next AplikasiExceptionMultipleCatch.java a) Tidak ada argument b) 1 c) 0
Try bersarang Next Aplikasi ExceptionNestedTry.java a) Tidak ada argumen b) 15 c) 15 3 d) 15 0 ExceptionNestedTry1.java
Error & Exception Classes Seluruh exceptions adalah subclasses, dari sebuah root class Throwable Type: Error class Exception class. Exception class kondisi yang dapat diterima oleh user programterjadi kesalahan pada kode program c/ pembagian oleh 0 dan error di luar jangkauan array. digunakan oleh JRE untuk menangani error yang muncul pada saat dijalankan Hal ini di luar control user karena kemunculannya disebabkan oleh JRE c/ out of memory & harddisk crash. Aplikasi ExceptionDivByZero.java
Keyword Finally Sintaks: try { <kode monitor exception> } catch (<ExceptionType1> <ObjName>) { <penanganan jika ExceptionType1 terjadi> } ... } finally { <kode yang akan dieksekusi saat blok try berakhir> } Next Aplikasi ExceptionFinally.java
Melempar Exception Keyword: throw throw <exception object>; ExceptionThow.java throws Jika sebuah method dapat menyebabkan sebuah exception namun tidak menangkapnya ExceptionThows.java <type> <methodName> (<parameterList>) throws <exceptionList> { <methodBody> }