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:
Contoh output:
Penjelasan dari kegiatan diatas yaitu sebagai berikut:
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.
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:
java.lang.NumberFormatException: Exception
java.lang.NullPointerException: Ini yaitu penyebab nyata dari exception
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