Memahami Exceptions Berantai Pada Jadwal Java

Sebelumnya anda sudah mengetahui bahwa blok catch akan melemparkan kembali exception yang orisinil (original). Namun terkadang Anda perlu juga untuk melemparkan exception yang gres dengan gosip suplemen bersama dengan exception original. Proses ini disebut dengan exception berantai (chained exception).

Berikut ini yaitu contohnya:

public class ExceptionBerantai {      public static void methodA() throws Exception{   try{    methodB();   }   catch (Exception ex){    throw new Exception("Informasi gres didapatkan dari methodA", ex);   }  }    public static void methodB() throws Exception {   throw new Exception("Informasi gres didapatkan dari methodB");  }    public static void main(String[] args) {      try{    methodA();   }   catch (Exception ex){    ex.printStackTrace();   }  } } 

Contoh output:
java.lang.Exception: Informasi gres didapatkan dari methodA  at ExceptionBerantai.methodA(ExceptionBerantai.java:9)  at ExceptionBerantai.main(ExceptionBerantai.java:20) Caused by: java.lang.Exception: Informasi gres didapatkan dari methodB  at ExceptionBerantai.methodB(ExceptionBerantai.java:14)  at ExceptionBerantai.methodA(ExceptionBerantai.java:6)  ... 1 more 

Penjelasan dari kegiatan diatas yaitu sebagai berikut:
  • Method main memanggil methodA pada line 20, lalu methodA memanggil methodB di line 6.
  • MethodB lalu melemparkan exception pada line 14. 
  • Exception ini lalu ditangkap oleh blok catch di methodA lalu di 'wrap' dalam exception gres di line 9.
  • Exception gres dilemparkan dan ditangkap oleh blok catch pada method main di line 22.
  • Method printStackTrace pada line 23 akan memperlihatkan infomrasi dari exception
  • Exception gres yang dilemparkan dari methodA akan ditampilkan terlebih dahulu lalu diikuti oleh exception original yang dilemparkan dari methodB.
Sebelumnya anda sudah mengetahui bahwa blok catch akan  Memahami Exceptions Berantai Pada Program Java

Class Throwable Memiliki Constructor Yang Mendukung Exception Berantai Pada Program Java

Exception berantai ini pertama kali diperkenalkan semenjak Java 1.4. Untuk mendukung exception berantai ini maka pada class Throwable terdapat 2 constructor yang mendukungnya, yaitu:
  • Throwable (Throwable cause)
  • Throwable (String msg, Throwable cause)



Method dari Class Throwable Yang Mendukung Exception Berantai 

Method class Throwable untuk exception berantai ini diantaranya adalah:
  • getCause(), method ini akan mengembalikan penyebab nyata dari exception.
  • initCause(Throwable cause), method ini akan meng-set penyebab untuk memanggil exeception.
Contoh dari penggunaan method tersebut sebagai berikut:

public class MenanganiException {     public static void main(String[] args)     {         try         {             //Membuat sebuah exception             NumberFormatException ex = new NumberFormatException("Exception");                  //Mengset sebuah penyebab nyata dari exceception             ex.initCause(new NullPointerException("Ini yaitu penyebab nyata dari exception"));                 throw ex;         }         catch(NumberFormatException ex)         {             System.out.println(ex);//menampilkan exception               System.out.println(ex.getCause());//mendapatkan penyebab nyata dari exception         }     } }  
Contoh output:
java.lang.NumberFormatException: Exception
java.lang.NullPointerException: Ini yaitu penyebab nyata dari exception

Belum ada Komentar untuk "Memahami Exceptions Berantai Pada Jadwal Java"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel