Monday, October 13, 2014

Exception Handling Pada Java

Error dalam pemrograman dibagi dalam tiga katagori yaitu syntax error (saat kompilasi), run time error, dan logic error (output belum sesuai dengan yang diharapkan). Exception dipicu oleh run time error dan digunakan sebagai sarana melaporkan kondisi-kondisi kesalahan.
Jadi Exception Handling pada java adalah mengidentifikasi beberapa error yang terjadi karena penulisan syntax dan logika dalam program yang kita buat dan membuatnya menjadi notifikasi error yang lebih mudah untuk dipahami.

1.2.              Jenis-Jenis Exception
Dalam java, exception merupakan objek dari subkelas yang diturunkan dari kelas Throwable. Kelas Throwable ini terdapat dalam package java.lang.object.

1.2.1.                     Kelompok Kelas Error
Error ini bersifat fatal sehingga sistem tidak dapat dimanipulasi untuk diperbaiki, contoh kelas: LinkageError, VirtualMachineError, dan AWTError.



1.2.2.                     Kelompok Kelas Exception
Jenis error ini masih dapat diantisipasi dengan menyisipkan statement tambahan untuk mendeteksi data yang berpotensi menimbulkan error.
Ada kelompok exception yang diperiksa oleh interpreter, apakah akan ditangani atau dilempar, namun ada pula exception yang akan tidak diperiksa interpreter.
Disamping itu programmer dibolehkan membuat exception sendiri dengan cara extends atau implements kelas Exception.
Checked Exception
No
Exception
Deskripsi
1
ClassNotFoundException Kelas tidak ditemukan
2
CloneNotSupportedException melakukan clone objek yang tidak mengimplementasikan interface Cloneable
3
IllegalAccessException Pengaksesan ke kelas ditolak
4
InstantiationException Menciptakan objek dari kelas abtract ataupun dari interface
5
InterruptedException Thread telah diinterupsi oleh thread lain
6
NoSuchFieldException Field yang diminta tidak ada
7
NoSuchMethodException Method yang diminta tidak ada
Uncheked Exception
No
Exception
Deskripsi
1 AritmaticException Kesalahan Aritmatik seperti pembagian dengan nol
2 ArrayIndexOutBoundsException Index array di luar batas
3 ArrayStoreException Pemberian nilai ke elemen array tidak sesuai dengan tipenya
4 ClassCastException Cast yang tidak sah
5 IllegalArgumentException Argument illegal
6 IllegalMonitorStateException Operasi monitor illegal seperti menunggu di thread yang tidak terkunci
7 IllegalStateException Lingkungan atau aplikasi state yang tidak benar
8 IllegalThreadStateException Operasi yang diminta tidak kompatibel dengan state thread saat itu
9 IndexOutOfBoundException Indeks di luar batas
10 NegativeArraySizeException Array diciptakan dengan ukuran negatif
11 NullPointerException Penggunan null yang tidak sah
12 NumberFormatException Konversi yang tidak sah dari string ke format numerik
13 SecurityException Melanggar aturan security
14 StringIndexOutOfBounds Index di luar batas string
15 UnsupportedOperationException Ditemukan operasi yang tidak didukung

Dua Exception yang belum dikelompokkan, yaitu IOException dan AWTException.
1.3.              Mengantisipasi Exception
Diperlukan tiga langkah berikut ini untuk mengantisipasi exception :
  1. Mendeklarasikan Exception
Bentuk umum :
[modifier] returntype namaMethod() throws tipeException{
}
Contoh :
public void operasiMatematika() throws IOException,
    ClassNotFoundException {
}
public void beriPinjaman() throws TolakException{
}
  1. Melempar Exception
Bentuk umum :
TipeException namaObjek = new TipeException;
throw namaObjek;
Diringkas menjadi :
throw namaObjek TipeException;
atau
throw new TipeException();
Contoh :
TolakException t = new TolakException(”lagi pelit”);
throw t;
Diringkas menjadi :
throw new TolakException(”lagi pelit!”);

  1. Menangkap Exception
Penangkapan runtime error, dapat mempunyai beberapa blok yang menangkap setiap jenis exception.
Bentuk umum :
try {
// pemanggilan method yg mungkin menghasilkan exception
// blok statement yg mungkin menghasilkan exception
}
catch(TipeException1 namaObjek) {
// penanganan salah-satu jenis exception
}
catch(TipeException2 namaObjek) {
// penanganan salah-satu jenis exception
}

catch(TipeExceptionN namaObjek) {
// penanganan salah-satu jenis exception
}
finally {
// blok yang harus dieksekusi
}
Jika pada blok try tidak terjadi exception, maka blok catch tidak ada yang dieksekusi dan segera blok finally yang dieksekusi.
Jika terjadi exception pada blok try, maka salah satu blok catch dieksekusi, kemudian blok finally dieksekusi.

1.4.              Mekanisme Mengantisipasi Exception
Ada tiga kemungkinan skenario exception, pertama jika tidak terjadi exception (tidak ada blok catch yang dieksekusi), kedua jika exception terjadi pada blok method tunggal (salah-satu blok catch dieksekusi), ketiga jika terjadi exception pada blok tersarang.
Method A {     …
    try {
        …
        memanggil method B;
    }
    catch(Exception1 obj1) {
        proses Obj1;
    }
    …
}
Method B {     …
    try {
        …;
    }
    catch(Exception2 obj2) {
        proses Obj2;
    }
    …
}


1.5.              Menampilkan Pesan Exception
Beberapa method standard yang dapat digunakan untuk menampilkan pesan exception merupakan anggota dari kelas java.lang.Throwable.
No
Method Pesan Exception
Deskripsi
1
getMessage() Mengembalikan nilai string yang berisi pesan rinci tentang objek Throwable yang mengalami exception
2
toString() Mengembalikan nilai string yang berisi pesan singkat tentang objek yang mengalami exception
3
getLocalizedMessage() Menampilkan pesan exception lokal (yang terjadi pada subkelas saja)
4
printStackTrace() Method ini bersifat void, dan hanya mencetak informasi tentang objek Throwable

No comments:

Post a Comment