EXCEPTION HANDLING

EXCEPTION HANDLING


Exception adalah sebuah objek yang terjadi oleh  kondisi yang tidak biasa, terutama ketika terjadi  error conditions, run-time error atau invalid processing. Exception   menyediakan pemberitahuan kesalahan dan cara penanganannya. Dengan cara ini penanganan kesalahan dapat dilakukan secara tepat.
Exception ini merupakan fitur yang disediakan oleh Java agar program bersifat robust,yaitu tidak  membatasi adanya kemungkinan adanya kesalahan input yang tidak diharapkan yang dilakukan oleh user.
       Java menangani exception dengan menggunakan 5 kata kunci, yaitu: trycatchthrow,throws, dan  finally

       Secara singkat, untuk memonitor bagaimana cara kerjanya exception,  program yang akan dimonitor diisi dengan sebuah  try block. Jika  exception terjadi didalam  try block, itu akan ditambahkan ‘thrown’. Kode program dapat menangkap  exception ini (menggunakan catch) dan  menanganinya dengan cara rasional.
Bentuk umum dari  exception-handling block:
try
{
// kode blok 
}
catch (Tipe Exception  e )
{
// penanganan exception  untuk tipe
}
Finally
{
// kode blok yang dieksekusi sebelum  try block berakhir
}

3.1 Tipe Exception
Semua tipe  exception adalah  subclasses dari  built-in class Throwable. Dengan demikian,Throwable adalah  sebagai top exception dalam hirarakhi kelas. Di bawah Throwable ada dua subclasses yang dibagi menjadi  2 bagian yaitu exception dan error.
Exception, Kelas ini digunakan untuk menangani kondisi  luar biasa  yang  program sebaiknya tangkap. Subclass penting dari  Exception, adalah  RuntimeException.
Exception tipe ini secara otomatis didefinisikan untuk program yang kita tulis, dan termasuk division by zero dan invalid array indexing.
Error, mendefinisikan exception yang tidak diharapkan untuk di tangkap dibawah keadaan normal  oleh program kita.  Exception dari tipe  Error digunakan oleh Java run-time system untuk menunjukan error yang berhubungan  dengan  run-time environment  itu sendiri. Sebagai contoh, stack overflow adalah sebuah contoh dari error yang terjadi seperti yang baru dijelaskan. Dan pada bab ini kita hanya membahas pada Exception.
3.2 Menggunakan  try dan catch
Berikut ini sebuah contoh program yang mengilustrasikan blok   try  dan blok catch dimana proses  ArithmeticException dihasilkan oleh kesalahan pembagian dengan nol :
try
{
// kode blok 
}
catch (Tipe Exception1  e )
{
// penanganan exception  untuk tipe 1
}


3.3 Multiple catch Blocks

Java mendukung multiple catch blocks, yaitu  dalam satu blok try dapat mempunyai lebih dari satu blok catch. Jika  dalam satu blok try terdapat lebih dari satu blok catch, hanya satu blok catch  yang dieksekusi sesuai dengan kondisi kesalahan.
Setiap blok  catch harus ditentukan sebuah tipe  exception yang berbeda. Bentuk umumnya adalah sebagai berikut:
try
{
// kode blok 
}
catch (Tipe Exception1  e )
{
// penanganan exception  untuk tipe 1
}
catch (Tipe Exception2  e )
{
// penanganan exception  untuk tipe 2
}

                                                              
3.4 Finally
 Finally  adalah bersifat  optional. bagaimanapun, setiap statemen  try memerlukan  minimal satu  catch atau satu  finally.
3.5 Exceptions Build-in Dalam Java
Paket  standar  java.lang  mendefinisikan beberapa kelas exception. Beberapa dari kelas tersebut telah digunakan dalam contoh di atas. Berikut ini diberikan sebuah Table yang berisi beberapa jenis tipe exception pada java.lang.

Tabel 5.1  Tipe exception pada java.lang
Tipe Exception
Deskripsi
ArithmeticException
Kesalahan aritmetika, seperti pembagian dengan nol.
ArrayIndexOutOfBoundsException
Indeks array keluar dari batas.
ArrayStoreException
Menunjuk ke sebuah elemen array yang tipenya tidak kompatibel.
IllegalArgumentException
Argument tidak sah digunakan untuk memanggil sebuah argument.
IndexOutOfBoundsException
Beberapa tipe indeks keluar dari batas
NegativeArraySizeException
Array dibuat dengan ukuran negative
NullPointerException
Invalid use of a null reference.
NumberFormatException
Konversi tidak sah dari string ke sebuah format numeric.
ClassNotFoundException
Class tidak ditemukan.
CloneNotSupportedException
Berusaha untuk mengklonig sebuah objek yang tidak menerapkan  Cloneable interface.
IllegalAccessException
Akses ke sebuah  class tidak sah
InstantiationException
Usaha untuk membuat sebuah objek dari abstract class atau interface.

Share this:

Disqus Comments