Jumat, September 29, 2017

Penanganan Error

Penanganan Error

Kategori Exception

Kategori-kateogori exception, adapan kategori-kategori exception adalah, sebagai berikut:

Checked exceptions

Checked exceptions merupakan exception yang disebabkan oleh kesalahan pemakai program atau hal lain yang dapat diprediksi oleh pemrograman.

  
Runtime exception

Runtime exception adalah exception yang muncul dimana kemunculannya tidak bisa dihindari oleh pemrograman. Runtime exception biasanya disebabkan oleh kesalhan program atau pada desain program.

Errors

Error sebenarnya bukan exception, namun merupakan masalah yang muncul diluar kendali pemakai dan pemrogram. Error secara umum akan dibiarkan saja, sebab tidak ada yang bisa dilakukan untuk mengatasinya. Misalnya, jika stack overflow muncul maka error akan muncul. Adapun jenis-jenis error yaitu:

1.      Syntax error

      Syntax Error merupakan suatu kesalahan dari penulisan syntax pada program sehingga syntax tersebu tidak dapat dieksekusi oleh program yang pasti membuat program tersebut error.


2.      Logical Error

Method where error occurred Method without an exception handler Method with an exception handler main 

 

3.      Logical Error

       adalah sutau kesalahan yang disebabkan oleh si programmer sendiri, hal ini disebabkan oleh kesalhan penulisan atau rumus yang diterapkan oleh si programmer


4.      Runtime error Error 

       yang satu ini tergolong error yang unik, karena error ini akibat dari kecerobohan seorang    programmer itu sendiri. Error ini akan muncul apabila terjadi miskomunikasi antara program dan difile yang dipanggil dalam  program.

       Dasar Exception

 

Dasar-Dasar Exception Handling (Penanganan Eksepsi)

Penanganan eksepsi pada java diatur dengan lima kata kunci: try, catch, throw, throws dan finally. Pada dasarnya try digunakan untuk mengeksekusi suatu bagian program, dan jika muncul kesalahan, sistem akan melakukan throw suatu eksepsi yang dapat menangkap (catch) berdasarkan tipe eksepsi atau yang diberikan finally dengan penganan default.

Berikut ini bentuk dasar bagian penanganan eksepsi:

try{

//Block of Code }

catch (Exception Type1 e)

{

 //Exception Handler for Exception Type1 }

catch (Exception Type2 e)

{

//Exception Handler for Exception Type2

Throw(e);//re-throw the Exception...

} finally{

}

Pada bentuk diatas, bagian finally akan dijalankan, tidak tergantung apakah bagian blok try mengalami eksepsi maupun tidak.

       Exception

Eksepsi (exception) adalah suatu even, yang terjadi selama eksekusi program, yang mengacaukan alrr normal instruksi program. Pada prinsipnya, eksepsi adalah suatu objek, yang diturunkan dari kelas java.lang.Throwable. Dalam menangani suatu eksepsi, Java menggunakan mekanisme penanganan eksepsi terstruktur.

       Exception Handling

EXCEPTION HANDLING

Dalam bahasa java, ketika terjadi kesalahan, otomatis akan dilemparkan sebuah objek yang disebut exception, yang kemudian dapat diproses lebih lanjut oleh fungsi-fungsi yang siap menangani kesalahan tersebut. Proses pelemparan exception yersebut sering dikenal denga istilah throwing exception, sedangkan penerimaan exception yang bersangkutan dikenal dengan istilah catch exception.

Eksepsi (exception) adalah suatu even, yang terjadi selama eksekusi program, yang mengacaukan alrr normal instruksi program. Pada prinsipnya, eksepsi adalah suatu objek, yang diturunkan dari kelas java.lang.Throwable. Dalam menangani suatu eksepsi, Java menggunakan mekanisme penanganan eksepsi terstruktur.

Suatu program apabila mengalami kesalahan akan mengahasilkan suatu runtime errors seperti gagal membuka file, suatu program melakukan akses diatas range array. Ketika runtime errors tersebut terjadi, maka aplikasi akan membuat suatu exception.

        
Aturan Penanganan Error

Contoh program:

1.      Membuaat program tanpaexception.java

Source kode tanpaexception

class tanpaexception {

public static void main(String[] args){

int nilai=Integer.parseInt(args[0]);

//statement diatas membutuhkan exception-handling

System.out.println("Nilai yang dimasukan : " +nilai);

}

}

-          Simpan dengan nama tanpaexception.java

      Tekan Ctrl+1 untuk mengkompile

Hasil setelah di compile:

-          Klik start>run lalu ketik cmd untuk membuka command prompt

-          Gunakan perintah cd (change directory) untuk menuju directory tempat file tanpaexception.class berada

-          Ketikan java tanpaexception xxx untuk menjalankan program java.

2.      Membuat program cobaexception.java

Source code cobaexception.java

class cobaexception{

public static void main(String[]args){

int nilai=0;

try{

    nilai=Integer.parseInt(args[0]);

    //dalam blok exception-handling

    }catch(Exception e){

          System.out.println("Harus Integer");

          }finally{

             System.out.println("Nilai Anda: "+nilai);

             }

             System.out.println("Selesai..");

             }

             }

-          Simpan dengan nama cobaexception.java

      Tekan Ctrl+1 untuk mengkompile

Hasil setelah di compile:

-          Klik start>run lalu ketik cmd untuk membuka command prompt

-          Gunakan perintah cd (change directory) untuk menuju directory tempat file cobaexception.class berada

-          Ketikan java cobaexception xxx untuk menjalankan program java.

3.      Membuat program pembagian.java

Source code pembagian.java

class pembagian{

public static void main(String[]args){

       int a=0;

       int b=0;

       int c=0;

       try{

           a=Integer.parseInt(args[0]);

           b=Integer.parseInt(args[1]);

           System.out.println("Nilai a: "+a);

           System.out.println("Nilai b: "+b);

           c=a/b;

 }catch(NumberFormatException nfe){

     System.out.println("Bukan angka. Inisialisasi dengan Nilai 0");

 }catch(ArithmeticException ae){

     System.out.println("Pembagi tidak boleh 0");

     b=1;

     //karena terjadi exception maka harus

     //dilakukan pembagian lagi

     c=a/b;

       System.out.println("Inisialisasi Nilai b dengan Nilai l");

 }finally{

       System.out.println("Nilai a: "+a);

       System.out.println("Nilai b: "+b);

       System.out.println("Hasil : "+c);

 }

       System.out.println("Selesai..");

   }

 }

Method Overriding dan Exception

Overriding adalah suatu kemampuan dalam bahasa berorientasi objek untuk mengubah implementasi (menimpa) suatu method yang dimiliki oleh kelas super ketika kelas super tersebut diturunkan. 

Ada dua alasan mengapa melakukan overriding :

1.   Mendefensikan kembali method kelas induk secara total.

2.   Menambah behavior tertentu pada method kelas induk.

        Sedangkan Exception merupakan suatu objek error khusus yang dibuat ketika terjadi kesalahan pada suatu program. setelah suatu objek exception dibuat oleh Java, objek tersebut dikirimkan ke program, proses ini disebutThrowing an exception.

   Setelah sebuah metode melemparkan exception, sistem runtime akan berusaha mencari sesuatu untuk menangani exception tersebut. Maksud dari "sesuatu" yang menangani exception adalah daftar metode yang sudah diurutkan yang sudah dipanggil agar sampai ke motode dimana error terjadi. Daftar metode tersebut biasanya disebut call stack (tumpukan pemanggilan).

Kategori error dalam program :

1. Syntax error

Error yang terjadi apabila java compiler menemukan kesalahan pada syntax atau aturan-aturan lainnya pada program.

2. Runtime error

Error yang terjadi karena factor eksternal, seperti adanya pembagian dengan nol, input yang tidak sesuai dengan tipe yang diminta dan sebagainya. Kondisi ini dikenal sebagai exception.

3. Logic error

Error yang terjadi karena kesalahan logika pemrograman. Misalnya hasil pembagian dua buah bilangan diberi tipe data int. hal ini menyebabkan hasil tidak valid karena ada bagian koma decimal yang akan hilang.

.........