This is blog for Developer

Selasa, 02 Mei 2017

Exception

Menangani Exception


Exception adalah suatu kondisi abnormal yang terjadi saat menjalankan program. Exception direpresentasikan dalam sebuah objek yang menjelaskan tentang exception tersebut. Salah satu contoh exception adalah pembagian bilangan dengan 0.
Terdapat dua penanganan exception yaitu:
  • Menangani sendiri.
  • Meneruskannya keluar dengan membuat objek exception tersebut dan melemparkannya (throw) keluar agar ditangani oleh kode yang memanggil method(yang didalamnya terdapat exception)tersebut.

Ada lima keyword yang digunakan oleh Java untuk menangani exception yaitu try, catch, finally, throw dan throws.


Tipe-tipe Exception
pada exception, superclass tertinggi adalah class Throwable, tetapi kita hampir tidak pernah menggunakan class ini secara langsung. Dibawah class Throwable terdapat dua subclass yaitu class Error dan Exception.
Class Error tidak ditangani dengan block try-catch, karena berhubungan dengan Java run-time system/environment. Untuk exception dengan tipe class Exception, merupakan exception yang dapat ditangani program.
Terdapat subclass dari class Exception diantaranya RunTimeException, IOException, AWTException dan lain-lain. Exception bertipe RunTimeException dan turunanya tidak harus secara eksplisit ditangani program (Unchecked Exception). Sedangkan semua tipe exception yang bukan turunan dari class RunTimeException merupakan exception yang harus ditangani atau jika tidak ditangani menyebabkan error.
Dibawah ini adalah hirarki dari exception.









Penggunaan Blok try-catch
Untuk menangani exception dalam program, dengan meletakkan kode program yang
memungkinkan terjadinya exception didalam blok try, diikuti dengan blok catch yang
menentukan jenis exception yang ingin ditangani. Contoh :

        public class Percobaan2 {
                    public static void main(String[] args) {
                                    int a[] = new int[5];
                                     try{
                                          a[5] = 100 ;
                                     }catch(ArrayIndexOutOfBoundsException e){
                                              System.out.println("Indeks Array melebihi batas");
                                     }
                                      System.out.println("Setelah blok try-catch");
                               }


Output :

Terjadi exception karena Indeks Array melebihi batas
Setelah blok try-catch


Kode yang terdapat dalam blok try dapat mengakibatkan lebih dari satu exception. Dalam hal ini, kita dapat menulis lebih dari satu blok catch. Blok catch yang dijalankan tergantung dengan exception yang terjadi. Java akan menjalankan blok catch yang sesuai dengan tipe exceptionnya saja. Dalam penggunaannya, blok catch dengan tipe subclass harus ditulis lebih dahulu baru diikuti
dengan blok catch dengan tipe data superclassnya.



Menggunakan Keyword “finally”

Terdapat kode yang harus dijalankan walaupun terjadi atau tidak terjadi exception,
misalkan kita membuka file, hal ini memungkinkan terjadinya exception misal file tidak
ada, file tidak bisa dibuka, selanjutnya yang harus dilakukan adalah menutup file
tersebut.

           public class Percobaan2 {
                       public static void main(String[] args) {
                                  int a[] = new int[5];
                                  try{
                                       a[5] = 100 ;
                                   }catch(ArrayIndexOutOfBoundsException e){
                                        System.out.println("Terjadi exception karena Indeks Array melebihi batas");
                                   }finally{
                                              System.out.println("Selalu Dijalankan");
                                   }
                                   System.out.println("Setelah blok try-catch");
                            }
                     }


Menggunakan Keyword “throw” dan “throws”

Secara eksplisit, kita dapat melempar (throw) exception dari program menggunakan
keyword throw. Jika exception tersebut adalah checked exception, maka pada method
harus ditambahkan throws. Jika exception tersebut adalah unchecked exception, maka
pada method tidak perlu ditambahkan throws.

            public class Percobaan6 {
                        public static void method1() throws FileNotFoundException{
                                    throw new FileNotFoundException("File Tidak Ada");
                                }
                        public static void main(String[] args) {
                                   try {
                                     method1();
                                   } catch (FileNotFoundException ex) {
                                                System.out.println(ex.getMessage());
                                     }
                               }
                        }







Membuat sendiri Subclass dari Exception

Untuk melakukan ini, kita cukup membuat class baru yang merupakan subclass
Exception. Didalam class ini kita cukup mendeklarasikan konstruktor.

             class Salah extends Exception{
                      public Salah(){}
                      public Salah(String pesan){
                                      super(pesan);
                         }

                   }
Share:

0 komentar:

Posting Komentar