Pemrograman berbasis obyek Exception Handling Banni Satria Andoko Pemrograman berbasis obyek
Topik Definisi Exception Kategori Penanganan Exception Object Exception Method yang melempar Exception Membuat eksepsi sendiri Overriding method dan exception
Definisi Exception merupakan event yang terjadi program menemui kesalahan ketika instruksi program dijalankan Eksepsi dapat dijumpai ketika : Membuka file yang tidak ada Koneksi jaringan terganggu Pemanggilan kelas yang tidak ada Pembagian bilangan dengan 0 Pengisian / pengaksesan element array diluar ukurannya
Contoh terjadinya Eksepsi OUTPUT : Java Exception : indeks array melebihi ukuran
Contoh lain terjadinya Eksepsi OUTPUT : Java Exception : pembagian dengan nol
Kategori Exception Checked / Other Exception, Eksepsi ini biasanya mengindikasikan kesalahan environment, dimana aplikasi seharusnya dapat mengantisipasi dan memperbaikinya. Contoh File tidak ditemukan URL invalid Runtime Exception, mengindikasikan kesalahan implementasi atau desain dari program. Contoh Pembagian bilangan dengan 0 Akses array melebihi batas ukuran Error, mengindikasikan bahwa terjadi fatal error dimana proses perbaikan sangat sulit. Contoh : Kegagalan fungsi baca hardware Out of memory
Bagan Kategori Exception
Exception yang Umum ArithmeticException NullPointerException Hasil dari operasi divide-by-zero pada integer Misal: int i = 12/0; NullPointerException Mencoba mengakses atribut atau method suatu object padahal object belum dibuat. Misal: Date d = null; System.out.println(d.toString()); NegativeArraySizeException Mencoba membuat array dengan ukuran negatif. FileNotFoundException Mengakses file yang tidak ada NumberFormatException Convert dari string ke numerik, Misal : int I = Integer.parseInt(“abs”); ArrayIndexOutOfBoundsException Mencoba mengakses elemen array dimana index nya melebihi ukuran array
Contoh Runtime Exception
Contoh Checked Exception
Penjelasan contoh checked exception Program MyFileReader mencoba membaca file yang diinputkan. Jika file tidak ditemukan akan terdapat output :
Jika Terjadi kesalahan dalam eksekusi program Secara otomatis akan dilempar sebuah object yang disebut dgn exception. Exception dapat diproses lebih lanjut oleh fungsi-fungsi yang siap menangani kesalahan. Proses pelemparan exception disebut dgn throwing exception. Proses penerimaan exception disebut dengan catch exception.
Penanganan Kesalahan Dengan menggunakan exception : try { //blok statement yang diuji } catch(ExceptionType e){ //blok statement penanganan }
Contoh try...catch
Exception dengan lebih dari 1 catch Dapat digunakan beberapa blok catch untuk satu blok try. Exception dalam satu program bisa mengatasi banyak exception. Contoh implementasi: Misal dalam satu blok try terdapat kemungkinan terjadi: NullPointerException IndexOutOfBoundsException ArithmeticException
Contoh : try...catch...catch....
Penggunaan finally Digunakan untuk mendefinisikan kode program yang selalu dieksekusi baik ada exception yang terjadi maupun bila tidak terjadi exception sama sekali. Format : try { //blok statement yang diuji } catch(ExceptionType e){ //blok statement penanganan } finally{ //blok statement finally }
Contoh finally
Nested try...catch Merupakan try...catch yang bertingkat. try { //blok statement } catch (Exception x) { }
Object Exception Object exception yang dihasilkan dapat dimanfaatkan untuk mengetahui lebih lanjut mengenai error atau exception yang terjadi. Exception merupakan subclass dari class Throwable.
Method – method pada Exception Class getMessage(), method ini mengembalikan isi pesan untuk menggambarkan exception yang terjadi printStackTrace(), method ini menampilkan pesan error dan stack trace ke standard error output stream yang biasanya merupakan konsol window apabila program merupakan program konsol. printStackTrace(PrintStream s), method ini mengembalikan pesan error ke objek PrintStream yang dijadikan parameter. Apabila ingin menampilkan pesan ke konsol, anda dapat menggunakan system.out sebagai parameter.
Contoh penggunaan Exception class method
Mendefinisikan method yang menghasilkan exception Method tertentu dlm program mungkin akan menghasilkan error yang tidak dikenali secara otomatis oleh Java Virtual Machine. Berlaku bagi kategori exception yg bukan subclass dari RunTimeException. Contoh: EOFException, MallformedURLException Dengan cara membuat method yang dapat melempar exception.
Contoh definisi exception method salah Compiletime Error karena method melemparkan exception sehingga harus diletakkan dalam try..catch
Contoh definisi exception method benar Benar karena method yang melempar exception diletakkan dalam try..catch
Membuat class exception baru Sebuah subclass dari exception dapat dibuat sendiri oleh programmer untuk mendefinisikan sendiri secara lebih rinci tentang exception yang dapat terjadi. Class exception baru ini harus merupakan subclass dari java.lang.Exception.
Contoh definisi kelas Exception baru
Overriding Method dan Exception Overriding method hanya boleh melempar exception yang merupakan subclass dari exeption yang dilempar oleh overriden method atau sama. Overriding method boleh mendeklarasikan exception lebih sedikit dari jumlah exception kepunyaan overridden method.
Contoh overriding method & exception Class TestB1ok karena ArithmeticException merupakan subclass dari RuntimeException Class TestB2 error karena Exception merupakan superclass dari RuntimeException