Skip to content Skip to sidebar Skip to footer

Melemparkan Kembali Exception (Rethrow Exception)

Pada program Java mengizinkan exception handler untuk melemparkan kembali (rethrow) exception bila handler tidak bisa memprosesnya atau hanya sekedar untuk memberi tahu handler mengenai exception tersebut.

Exception dapat dilemparkan kembali dari blok catch dan ini akan menyebabkan exception tersebut di-pass-kan pada method pemanggilnya. Bila pelemparan kembali exception itu berada pada main method maka exception akan di-pass-kan pada Java Virtual Machine (JVM) dan kemudian ditampilkan pada konsol.


melemparkan kembali rethrow exception


Tujuan dari operasi pelemparan kembali exception ini adalah untuk mendapatkan perhatian bahwa exception  telah terjadi dan pada waktu yang bersamaan melakukan logika kontingensi seperti logging di dalam blok catch.

Syntax untuk melemparkan kembali exception adalah sebagai berikut:

try {
   pernyataan;
}
catch (Exception ex) {
   melakukan operasi sebelum keluar;
   throw ex;
}

Perhatikan pernyataan throw ex pada syntax di atas. Pernyataan itu akan melemparkan kembali exception pada caller sehingga handler yang lain bisa memperoleh kesempatan untuk memproses exception ex tersebut.

Berikut ini adalah contoh kode program Java untuk memahami rethrow exception.

public class RethrowExceptions {

  static void pembagian(){
    int a,b,c;
    
    try{
        a = 5 ; 
        b = 0 ; 
        c = a / b ; 
        System.out.println(a + "/"+ b +" = " + c); 
    }
    catch(ArithmeticException e){
        System.out.println("Exception ditangkap pada method pembagian()");
        System.out.println("Tidak dapat dibagi oleh nol dalam divisi Integer");
        throw e; //Melemparkan kembali exception
    } 
  } 
      
   public static void main(String[] args){
     System.out.println("Method main() dimulai!");

     try{
        pembagian();
     }
     catch(ArithmeticException e){
        System.out.println("Exception yang dilemparkan kembali ditangkap di method Main()");
        System.out.println(e);
     } 
   } 
 } 




Output:
Method main() dimulai!
Exception ditangkap pada method pembagian()
Tidak dapat dibagi oleh nol dalam divisi Integer
Exception yang dilemparkan kembali ditangkap di method Main()
java.lang.ArithmeticException: / by zero

Pada kode di line 15 di atas terdapat pernyataan throw e pada blok catch yang artinya blok catch itu akan melemparkan kembali exception dari method pembagian(). Selanjutnya exception yang terlempar itu akan di-pass-kan pada blok catch dengan pernyataan catch(ArithmeticException e) pada line 25 yang terdapat pada method main().

Post a Comment for "Melemparkan Kembali Exception (Rethrow Exception)"