Exception Handling


Exception merupakan kondisi yang menyebabkan program menjadi hang atau quit dari alur normal yang telah ditentukan pada saat program dijalankan. Exception ini dipicu olehRuntime Error, yaitu error yang terjadi saat program dieksekusi. Pada dasarnya Exception merupakan sub class dari kelas Throwable, kelas ini terdapat pada package java.lang.objectyang merupakan default library dari java. Class Exception mempunyai beberapa sub class yaitu :

  • ClassNotFoundException, terjadi bila kita menggunakan class yang tidak ada
  • CloneNotSupportedException, terjadi bila kita mencoba untuk menggandakan suatu class yang tidak didukung oleh method clone
  • RuntimeException
  • ArithmeticException, khusus untuk menangani kesalahan pada operasi aritmatika seperti pembagian dengan nol
  • IOException, terjadi bila ada I/O error

Keyword Try, Catch dan Finally

keyword try digunakan pada suatu blok program yang diperkirakan blok tersebut terjadi exception. keyword try harus dipasangkan dengan keyword catch, keyword catch tersebut digunakan untuk menangkap dan memproses bila terjadi exception. sedangkan finally ini merupakan keyword yang menunjukan bahwa blok program tersebut akan selalu dieksekusi meskipun adanya kesalahan yang muncul atau pun tidak ada, keyword ini bersifat optionalsemacam default pada switch-case.

Berikut ini contoh yang dambil dari JENI bab exception :main.java

public static void main(String[] args ) {
try{
   int a = Integer.parseInt(args[1]);
   System.out.println(5/a);
   }
   catch(ArithmeticException e)
   {
   System.out.println(“Pembagian dengan nol”);
   }
   catch(ArrayIndexOutOfBoundsException e)
   {
   System.out.println(“Missing argument”);
   }
}

Throw

pernyataan throw digunakan untuk melempar exception secara eksplisit. Pertama kita harus mendapatkan penanganan dalam suatu instance throwable, melalui suatu parameter kedalam bagian catch, atau dengan membuatnya menggunakan operator new. Bentuk umum pernyataan throw :

throw ThrowableInstance;

Aliran eksekusi akan segera terhenti setelah pernyataan throw, dan pernyataan selanjutnya tidak akan dicapai. Blok try terdekat akan diperiksa untuk melihat jika telah memiliki bagian catch yang cocok dengan tipe instance Throwable. Jika tidak ditemukan yang cocok, maka pengaturan dipindahkan ke pernyataan tersebut. Jika tidak, maka blok pernyataan try selanjutnya diperiksa, begitu seterusnya sampai penanganan eksepsi terluar menghentikan program dan mencetak penelusuran semua tumpukan sampai pernyataan throw.

main.java
public class Main { 
/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
String input =”Invalid Input”;
try{

if(input.equals(“Invalid Input”))
{
throw new RuntimeException(“Throw Demo”);
}

 else {
 System.out.println(input);
 }
 }
 catch (RuntimeException e){
 System.out.println(“Exception diproses disini”);
 System.out.println(e);

 }
 }

}

Throws

Kata kunci throws digunakan untuk mengenali daftar eksepsi yang mungkin di-throw oleh suatu method. Jika tipe eksepsinya adalah error, atau RuntimeException, atau suatu subclassnya, aturan ini tidak berlaku, karena tidak diharapkan sebagai bagian normal dari kerja program.Jika suatu method secara eksplisit men-throws suatu intans dari Exception atau subclassnya, diluar RuntimeException, kita harus mendeklarasikan tipenya dengan pernyataan throws. ini mendefinisikan ulang deklarasi method sebelumnya dengan sintaks sebagai berikut :

type method-name (arg-list) throws exception-list {}
{

method body.

}

contoh.

ThrowingClass.java

class ThrowingClass {
 static void myMethod() throws ClassNotFoundException {
 throw new ClassNotFoundException (“just a demo”);
 }
 }

Main.java
class Main {

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s