EXCEPTION HANDLING PADA JAVA



Exception Handling

Eksepsi (exception) adalah suatu even, yang terjadi selama eksekusi
program, yang mengacaukan alir 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.

Menangkap Eksepsi

Ada dua jenis blok kode yang dapat kita gunakan untuk menangani
eksepsi, yaitu try dan catch. Blok try berisi kode yang berpotensi
membangkitkan eksepsi, sedangkan blok cath merupakan exception
handler-nya.
int i = 10;
int j = 0;
try {

// Baris berikut akan membangkitkan eksepsi, karena
// pembagian dengan nol, sehingga perlu ditangkap
int n = i / j;
// Baris berikut tidak akan dieksekusi
System.out.println(n);
} catch (Exception ex) {
System.out.println("Eksepsi ditangkap\n" + ex.getMessage());
}

Apabila penanganan eksepsi terdiri atas beberapa blok catch, sebaiknya
letakkan objek yang paling relevan di blok terdekat.
Langkah ini bertujuan agar eksepsi yang terjadi dapat ditangkap oleh
blok yang sesuai, dan menjadikan kode program mengalir secara
natural.

try {
int n = i / j;
System.out.println(n);
} catch (ArithmeticException ae) {
System.out.println("ArithmeticException");
} catch (Exception e) {
System.out.println("Eksepsi ditangkap");
}

Penanganan eksepsi juga dapat melibatkan blok finally, yaitu blok
yang akan selalu dieksekusi. Blok ini umumnya sering dimanfaatkan
untuk tahap pembersihan sumber daya karena sifatnya yang selalu
dijalankan.

try {
int n = i / j;
System.out.println(n);
} catch (ArithmeticException ex) {
System.out.println("ArithmeticException");
} catch (Exception ex) {
System.out.println("Eksepsi ditangkap");
} finally {
System.out.println("Ini akan selalu dieksekusi");
}

• Melempar Eksepsi

Untuk menspesifikasikan eksepsi yang akan diperiksa, kita dapat
memanfaatkan klausa throws.

public static int pembagian(int i, int j)
throws ArithmeticException {
return i/j;
}

throws di atas menyatakan bahwa pemanggilan method
pembagian harus dilakukan menggunakan blok try dan catch.

try {
int l = pembagian(2,0);
System.out.println(l);
} catch (ArithmeticException ex) {
ex.printStackTrace();
}

Kita juga dapat menangkap eksepsi secara eksplisit menggunakan
pernyataan throw (perhatikan, jangan keliru dengan throws).

public static int pembagian(int i, int j)
throws ArithmeticException {
if (j == 0) {
throw new ArithmeticException("Pembagian dengan 0");
}
return i/j;
}

• Informasi Eksepsi

Kelas Throwable mendefinisikan sejumlah method yang dapat
membantu kita untuk mendapatkan informasi-informasi terkait
dengan eksepsi, di antaranya adalah method getMessage dan
printStackTrace.
Apabila Anda ingin mendapatkan informasi mengenai method atau
nama kelas terkait, gunakan method getStackTrace dan objek
StackTraceElement.

try {
int l = pembagian(2,0);
System.out.println(l);
} catch (ArithmeticException ex) {
System.out.println("Nama File: " +
ex.getStackTrace()[0].getFileName());
System.out.println("Nama Kelas: " +
ex.getStackTrace()[0].getClassName());
System.out.println("Nama Method: " +
ex.getStackTrace()[0].getMethodName());
System.out.println("Baris ke-" +
ex.getStackTrace()[0].getLineNumber());
}


0 komentar:

Posting Komentar

Copyright 2009 JAVA. All rights reserved.
Bread Machine Reviews | watch free movies online by Blogger Templates