Home > Java > Exception Handling dalam Java

Exception Handling dalam Java

November 16, 2010 Leave a comment Go to comments

Exception merupakan kondisi yang menyebabkan program menjadi hang atau quit dari alur normal yang telah ditentukan pada saat program dijalankan. Exception ini dipicu oleh Runtime Error, yaitu error yang terjadi saat program dieksekusi. Pada dasarnya Exception merupakan sub class dari kelas Throwable, kelas ini terdapat pada package java.lang.object yang merupakan default library dari java. Class Exception mempunyai beberapa sub class yaitu

  • ClassNotFoundException, terjadi bila kita menggunakan class yang tidak ada
  • CloneNotSupportedException, terjadi bila kita mencoba untuk menggandakan suatu class yang tidak didukung oleh method clone
  • RuntimeException
  • ArithmeticException, khusus untuk menangani kesalahan pada operasi aritmatika seperti pembagian dengan nol
  • IOException, terjadi bila ada I/O error

Dalam menangani exception terdapat 5 keyword penting dalam java.

  • Bagian pertama adalah keyword try, catch dan finally

keyword try digunakan pada suatu blok program yang diperkirakan blok tersebut terjadi exception. keyword try harus dipasangkan dengan keyword catch, keyword catch tersebut digunakan untuk menangkap dan memproses bila terjadi exception. sedangkan finally ini merupakan keyword yang menunjukan bahwa blok program tersebut akan selalu dieksekusi meskipun adanya kesalahan yang muncul atau pun tidak ada, keyword ini bersifat optional semacam default pada switch-case.

Berikut ini contoh yang saya ambil dari JENI bab exception

main.java

public static void main(String[] args ) {
try{

int a = Integer.parseInt(args[1]);
System.out.println(5/a);
}
catch(ArithmeticException e)
{
System.out.println(“Pembagian dengan nol”);
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println(“Missing argument”);
}
}

untuk mengetahui perbedaan antar exception yang digunakan, ubah parameter pada method Integer.parseInt(“0”);

  • Bagian kedua adalah throw

pernyataan throw digunakan untuk melempar exception secara eksplisit. Pertama kita harus mendapatkan penanganan dalam suatu instance throwable, melalui suatu parameter kedalam bagian catch, atau dengan membuatnya menggunakan operator new. Bentuk umum pernyataan throw :

throw ThrowableInstance;
Aliran eksekusi akan segera terhenti setelah pernyataan throw, dan pernyataan selanjutnya tidak akan dicapai. Blok try terdekat akan diperiksa untuk melihat jika telah memiliki bagian catch yang cocok dengan tipe instance Throwable. Jika tidak ditemukan yang cocok, maka pengaturan dipindahkan ke pernyataan tersebut. Jika tidak, maka blok pernyataan try selanjutnya diperiksa, begitu seterusnya sampai penanganan eksepsi terluar menghentikan program dan mencetak penelusuran semua tumpukan sampai pernyataan throw.
main.java
public class Main { 

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String input =”Invalid Input”;
try{
if(input.equals(“Invalid Input”))
{
throw new RuntimeException(“Throw Demo”);
}
else {
System.out.println(input);
}
}
catch (RuntimeException e){
System.out.println(“Exception diproses disini”);
System.out.println(e);
}
}
}

  • Bagian ketiga adalah throws

Kata kunci throws digunakan untuk mengenali daftar eksepsi yang mungkin di-throw oleh suatu method. Jika tipe eksepsinya adalah error, atau RuntimeException, atau suatu subclassnya, aturan ini tidak berlaku, karena tidak diharapkan sebagai bagian normal dari kerja program.Jika suatu method secara eksplisit men-throws suatu intans dari Exception atau subclassnya, diluar RuntimeException, kita harus mendeklarasikan tipenya dengan pernyataan throws. ini mendefinisikan ulang deklarasi method sebelumnya dengan sintaks sebagai berikut :

type method-name (arg-list) throws exception-list {}

{

method body.

}

contoh.

ThrowingClass.java

class ThrowingClass {
static void myMethod() throws ClassNotFoundException {
throw new ClassNotFoundException (“just a demo”);
}
}

Main.java

class Main {
public static void main(String args[]) {
try {
ThrowingClass.myMethod();
} catch (ClassNotFoundException e) {
System.out.println(e);
}
}
}

Note.

berdasar beberapa sumber yang saya baca throws bisa digunakan untuk class. tapi saya belum mencobanya.

Semoga membantu

Kalau salah koreksi saya.

Terima Kasih

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: