Ads Here

Kamis, 07 Desember 2017

Hirarki class GUI


Hirarki Class Exception
Gambar 01. Hirarki Class Exception
Seperti yang terlihat diatas, hirarki class exception dimulai dari class Object, kemudian ada class Throwable yang merupakan superclass dari semua jenis exception.
Ada dua buah class turunan langsung dari superclass ini, yaitu Error dan Exception. Sedangkan untuk class Exception memiliki satu turunan, yaitu RuntimeException. Untuk lebih memahami, mari didiskusikan mengenai ketiga turunan dari class Error dan Exception tersebut, dimulai dari point yang pertama, yaitu

Erorr

Error biasanya tidak disebabkan oleh kesalahan yang terjadi dalam aplikasi. Melainkan lebih karena keadaan JVM yang tidak normal, seperti kehabisan memory dan lain sebagainya. Error tidak perlu dihandle dengan try-catch, karena tidak ada cara untuk mengatasi keadaan error. Secara teknis, sebenarnya error bukanlah exception, karena bukan merupakan turunan dari class Exception.

Exception

Berbeda dengan error diatas, exception merepresentasikan keaslahan yang terjadi dalam aplikasi. Programmer dapat melakukan recovery untuk mengenal exception. JDK mempunyai banyak sekali class turunan dari exception, nama class-class ini sangat descritive sehingga hanya dengan melihat nama class exceptionya, sudah diketahui kesalahan apa yang terjadi dalam aplikasi.

RuntimeException

Terakhir, runtimeException merupakan class yang spesial karena disebut juga dengan uncheked exception. Dalam arti RuntimeException tidak wajib di catch. Class ini memiliki turunan, seperti NullPointerException, ClassCastException, IndexOutOfBoundException dan masih banyak lagi. Untuk lebih memahami, mari diimplementasikan ke dalam kode program, seperti berikut ini
package com.wordpress.bmadi.moreexception;
public class DemoRuntimeException{
    public static void main(String[] args){    
        int i = Integer.parseInt("Andi");
        System.out.println("kode setelah exception");
    }
}
Kode program diatas artinya : Mendeklarasikan class DemoRuntimeException yang mengimplementasi exception NumberFormatException. Bila kode program daitas dieksekusi, keluaran yang dihasilkan seperti berikut
Exception in thread "main" java.lang.NumberFormatException: For input string: "Andi"
  at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
  at java.lang.Integer.parseInt(Integer.java:580)
  at java.lang.Integer.parseInt(Integer.java:615)
  at DemoRuntimeException.main(DemoRuntimeException.java:14)
Karena kode program diatas berusaha mengubah string menjdi angka, maka akan mengalami RuntimeException. Karena RuntimeException tidak wajib adanya try-catch yang menghandle, maka bila terjadi exception kode program akan segera keluar dari method.
Dan, karena disini hanya terdapat method main saja, maka konsep call stack akan digunakan, dimana untuk string “kode setelah exception” tidak akan ditampilkan.
Bila belum merasa yakin apakah string berhasil atau tidak dirubah menjadi Integer, maka dapat diletakan try-catach untuk dapat mengetahui hasilnya, seperti kode prgoram beriktu ini
package com.wordpress.bmadi.moreexception;
public class DemoRuntimeException1 {
    public static void main(String[] args){    
      int i = 0;
      try{
        i = Integer.parseInt("Andi");
      }catch(NumberFormatException ex){
        ex.printStackTrace();
      }
      System.out.println("kode setelah exception");
    }
}
Kode program diatas artinya: Mendeklarasikan class DemoRuntimeException yang mengimplementasi try-catch untuk mengecheck apakah berhasil atau tidak Integer dirubah menjdi String.Bila kode program diatas dieksekusi, keluaran yang dihasilkan seperti berikut
  java.lang.NumberFormatException: For input string: "Andi"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:580)
    at java.lang.Integer.parseInt(Integer.java:615)
    at DemoRuntimeException2.main(DemoRuntimeException2.java:17)
kode setelah exception
Melihat keluaran yang dihasilkan diatas, pada waktu mengeksekusi method parseInt, terjadi exception yang menyebabkan eksekusi akan loncat ke dalam kode block catch, setelah menampilkan stack trace ke console kemudian dilanjutkan eksekusi untuk mencetak string “kode setelah exception” ke console.
Dengan memodifikasi program menjadi seperti diatas, kode program yang ditulis menjadi lebih handal dan tidak menyebabkan program keluar sebelum eksekusi selesai dilakukan.











sumber:https://bmadi.wordpress.com/tag/hirarki-class-exception/

Tidak ada komentar:

Posting Komentar