Pemograman Java Exception




Exception adalah suatu keadaan yang menyebabkan program hang atau keluar dari alur normal pada saat program dijalankan. Exception handling merupakan mekanisme untuk menangkap bug atau kesalahan pada saat program sedang berjalan.
Keyword pada Exception Handling
-Try
Blok try digunakan untuk menempatkan kode-kode program java yang memungkinkan terjadinya exception.
-Catch
Blok catch digunakan untuk menangkap kesalahan yang terjadi pada blok try
-Finally
Kode program pada blok finally akan selalu dijalankan, tidak peduli apakah terjadi ekssepsi atau tidak
-Throw
Keyword throw digunakan untuk melempar exception yang terjadi
-Throws
Keyword yang digunakan dalam suatu method atau kelas yang mungkin menghasilkan suatu kesalahan sehingga perlu ditangkap errornya.

Kelas exception memiliki beberapa metode-metode, antara lain :
·         Metode public String getMessage() mengembalikan detail informasi mengemai exception yang terjadi, informasi ini diinisialisasi oleh konstruktor yang dimiliki Throwable.
·         Metode public Throwable getCause() menampilkan penyebab dari exception.
·         Metode public String toString() mendapatkan nama exception ditambah informasinya.
·         Metode public void printStackTrace : menampilkan hasil toString() beserta stack trace System.err.
·         Metode public StackTraceElement[]getStackTrace() mengembalikan array yang berisi semua elemen di stack trace, elemen ke 0 mewakili bagian atas call stack dan elemen akhir array mewakili bagian akhir call stack.
·         Metode public Throwable fillInStackTrace() mengisi stack trace dari object Throwable dengan stack trace yang terdeteksi, menambah ke dalam stack trace.








Array Dua Dimensi
Throw

Script Program:
import java.util.Scanner;
public class tugas2 {
    public static void main(String[] args){
      
        Scanner input = new Scanner(System.in);
        int kol;
        System.out.println("Kol yang harus diinput = 3");
        try{
            System.out.print("Jumlah kol: ");
            kol = input.nextInt();
            if(kol > 3){
                
                throw new Exception("Terjadi Kesalahan!");
            }else{
                System.out.println("---");
            }
        }catch(Exception e){
         
            e.printStackTrace();
        }
    }


}


Output Program:
Kol yang harus diinput = 3
Jumlah kol: 5
java.lang.Exception: Terjadi Kesalahan!
            at Exception.tugas2.main(tugas2.java:23)






Throws

Script Program:
class KelasAsing{
    static void test() throws ClassNotFoundException{
        System.out.println("Ada Yang Error!");
        throw new ClassNotFoundException("Sudah ditangkap");
    }
}

public class thrws {
   
    public static void main(String[] args){
        try{
            KelasAsing.test();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}


 Program ini mengimplementasikan penggunaan kata kunci throw dan throws. Pada program throw, jika user menginputkan jmlah kol lebih dari 3, maka akan terjadi error, exception/error yang telah di tangkap oleh blok try akan diubah menjadi objek (e) pada statement catch lalu menampilkan pesan error tersebut menggunakan method printStackTrace(). Pada program throws, menunjukkan bahwa method test() tidak menangani ClassNotFoundException, dengan menggunakan kata kunci throws, memberitahukan bahwa method tersebut dapat menyebabkan sebuah exception, lalu dicek pada bagian try lalu ditangkap dan ditampilkan pada bagian catch.



 Exception

Script Program:
public class BagiNol {
    public static void main(String[]args){
        System.out.println("Sebelum Pembagian");
        System.out.println(5/0);
        System.out.println("Sesudah Pembagian");
       
    }
}

Output Program:
Sebelum Pembagian
Exception in thread "main" java.lang.ArithmeticException: / by zero
            at Exception.BagiNol.main(BagiNol.java:15)
Java Result: 1


.Percobaan pertama ialah membuat sebuah class tanpa exception untuk melihat dimana letak kesalahan dan perbedaan menggunakan exception dengan tidak menggunakan exception. Pada percobaan pertama ini tidak dapat dieksekusi  karena ada kesalahan dalam pembagian bilangan dengan nol.



Exception (2)

Script Program:
public class BagiNol2 {
    public static void main(String[]args){
        System.out.println("Sebelum Pembagian");
        try{ System.out.println(5/0);}
        catch (Exception t){
                System.out.println("Pesan Kesalahan: ");
                System.out.println(t.getMessage());
                }
    System.out.println(" Sesudah Pembagian");


}



Output Program:

Sebelum Pembagian
Pesan Kesalahan:
/ by zero
 Sesudah Pembagian

Percobaan kedua ialah membuat sebuah class dengan exception. Digunakan program yang sama seperti percobaan pertama namun untuk percobaan ini menggunakan try dan catch untuk menangkap exception pada kode program yang terdapat masalah



 Exception (3)

Script Program:
public class MultiCatchException {
    public static void main(String[]args){
        try{ System.out.println(5/0);
        }
        catch(ArithmeticException e){
            System.out.println(0);
        }
        catch(ArrayIndexOutOfBoundsException e){
            System.out.println(1);
        }
        catch(Exception e){
            System.out.println(2);
        }
       
        }
    }
}

Output Program:
 0

Percobaan ketiga menggunakan lebih dari satu catch, masih dengan kode program kedua. Namun pada program ini exception ditangkap dengan dua exception arithmatik dan exception index array dan kesalahan ditampilkan dalam sebuah message. Pada array ini, dikarenakan kesalahan terdapat pada proses aritmatik maka aritmatik exceptionlah yang mengeksekusi.


Exception (4)

Script Program:


public class MultiCatchException {
public static void main(String[]args){
        try{ System.out.println(5/0);
        }
        catch(ArithmeticException e){
            System.out.println(0);
        }
        catch(ArrayIndexOutOfBoundsException e){
            System.out.println(1);
        }
        catch(Exception e){
            System.out.println(2);
        }
          finally{
            System.out.println(3);
        }
        }
    }


}
    
Output Program:
0
3

Pecobaan keempat menggunakan statement finally. Apabila terdapat statement finally maka satu blok catch yang menangkap exception akan dieksekusi dan finally juga akan mengeksekusi mengikuti alur dari program.

Exception (5)

Script Program:


public class Latihan {
    public static void main(String[] args) {
                   
                    try {
                   
                    String myString = "i";
                    int angka = Integer.parseInt(myString);
                        System.out.println(angka);
                   
                    }catch (NumberFormatException e) {
                        System.out.println("Terjadi kesalahan");
                    }
                }
}


Program exception handling untuk tipe exception lain. dibuat exception untuk NumberFormatException, dimana tipe data yang digunakan hanya berformat numerik.

Kesimpulan

Semua kelas exception adalah subclass dari java.langException. Kelas exception sendiri merupakan kelas turunan dari kelas Throwable. Selain kelas exceptiom, ada juga kelas error yang juga diturunkan dari kelas Throwable.
Exception Handling adalah mekanisme yang digunakan jika ada suatu kondisi yang tidak diinginkan terjadi ketika program sudah dijalankan (kondisi abnormal) yang kemudian dapat diproses lebih lanjut oleh fungsi-fungsi yang siap menangani kesalahan tersebut.
Pada prinsipnya, eksepsi adalah suatu objek, yang diturunkan dari kelas java.lang.Throwable.
Ketika error terjadi di suatu method, maka method tersebut akan membuat object yang kemudian dikirim ke runtime system. Object ini yang disebut sebagai exception objek, mengandung informasi tentang error yang terjadi, termasuk tipe dan kondisi program pada saat error terjadi.
Proses pembuatan exception object dan kemudian mengirimnya ke runtime system ini disebut sebagai “throwing an exception (melemparkan exception)”. Setelah method melemparkan exception, runtime system akan berusaha untuk mencari solusi untuk menangani masalah yang ada. Solusi yang ada bisa jadi lebih dari satu. Oleh karena itu, runtime system akan memilih berdasarkan suatu urutan yang berdasar pada method tempat terjadinya error dan atau method lain yang memanggil method tersebut.

0 comments:

Post a Comment

http://www.resepkuekeringku.com/2014/11/resep-donat-empuk-ala-dunkin-donut.html http://www.resepkuekeringku.com/2015/03/resep-kue-cubit-coklat-enak-dan-sederhana.html http://www.resepkuekeringku.com/2014/10/resep-donat-kentang-empuk-lembut-dan-enak.html http://www.resepkuekeringku.com/2014/07/resep-es-krim-goreng-coklat-kriuk-mudah-dan-sederhana-dengan-saus-strawberry.html http://www.resepkuekeringku.com/2014/06/resep-kue-es-krim-goreng-enak-dan-mudah.html http://www.resepkuekeringku.com/2014/09/resep-bolu-karamel-panggang-sarang-semut-lembut.html