Selasa, 22 Januari 2019

Exception


Exception


Exception adalah singkatan dari Exceptional Events, yang berarti kesalahan (errors) yang terjadi saat runtime, menyebabkan gangguan pada alur eksekusi program. 
Terdapat beberapa tipe error yang dapat muncul. Sebagai contoh adalah error pembagian 0, mengakses elemen di luar jangkauan sebuah array, input yang tidak benar dan membuka file yang tidak ada.


3 keywords penting dalam penanganan exception

Bahasa pemrograman Java memiliki 3 keywords penting dalam penanganan exception, yaitu try, catch dan finally3  Keyword  tersebut  digunakan bersama, namun finally bersifat opsional.


Berikut ini adalah penulisan try-catch secara umum :


try {

<code to be monitored for exceptions>

} catch (<ExceptionType1> <ObjName>) {
<handler if ExceptionType1 occurs>
}
...
} catch (<ExceptionTypeN> <ObjName>) {
<handler if ExceptionTypeN occurs>
}




Petunjuk Penulisan Program :


Blok catch dimulai setelah kurung kurawal dari kode try atau catch terkait. Penulisan kode dalam blok mengikuti identasi

Gunakan  contoh  kode  tersebut  pada  program  DivByZero  yang  telah  dibuat sebelumnya :

class DivByZero {
public static void main(String args[]) {
try {
System.out.println(3/0); System.out.println(“Cetak.”);
} catch (ArithmeticException exc) {
//Reaksi atas kejadian
System.out.println(exc);
}
System.out.println(“Setelah Exception.”);
}
}


Kesalahan    pembagian    dengan    bilangan     0    adalah    salah    satu    contoh    dari ArithmethicException. Tipe exception kemudian mengindikasikan klausa catch pada class ini. Program tersebut menangani kesalahan yang terjadi dengan menampilkan deskripsi dari permasalahan.
Output program saat eksekusi akan terlihat sebagai berikut :


java.lang.ArithmeticException: / by zero
After exception.

Bagian kode yang terdapat pada blok try dapat menyebabkan lebih dari satu tipe exception. Dalam hal ini, terjadinya bermacam tipe kesalahan dapat ditangani menggunakan beberapa blok catch. Perlu dicatat bahwa blok try dapat hanya menyebabkan sebuah exception pada satu waktu, namun dapat pula menampikan tipe exception yang berbeda di lain waktu.






Berikut adalah contoh kode yang menangani lebih dari satu exception :

class MultipleCatch {
public static void main(String args[]) {
try {
int den = Integer.parseInt(args[0]); //baris 4
System.out.println(3/den); //baris 5
} catch (ArithmeticException exc) { System.out.println(“Nilai Pembagi 0.”);
} catch (ArrayIndexOutOfBoundsException exc2) { System.out.println(“Missing argument.”);
}
System.out.println(“After exception.”);
}
}


Pada     contoh      ini,      baris      ke-4      akan      menghasilkan      kesalahan      berupa ArrayIndexOutOfBoundsException bilamana seorang user alpa dalam memasukkan argument, sedang baris ke-5 akan menghasilkan kesalahan ArithmethicException jika pengguna memasukkan nilai 0 sebagai sebuah argument.

Pelajari apakah yang akan terjadi terhadap program bila argumen – argumen berikut dimasukkan oleh user :
a)  Tidak ada argument b)  1
c)  0

Penggunaan try bersarang diperbolehkan dalam pemrograman Java.

class NestedTryDemo {
public static void main(String args[]){
try {
int a = Integer.parseInt(args[0]);
try {
int b = Integer.parseInt(args[1]); System.out.println(a/b);
} catch (ArithmeticException e) { System.out.println(“Divide by zero error!");
}
} catch (ArrayIndexOutOfBoundsException) { System.out.println(“2 parameters are required!");
}
}
}

Pelajari apa yang akan terjadi pada program jika argument – argument berikut dimasukkan :
a)   Tidak ada argumen b)  15
c)   15        3
d)  15        0



Kode berikut menggunakan try bersarang tergabung dengan penggunaan method.

class NestedTryDemo2 {
static void nestedTry(String args[]) {
try {
int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); System.out.println(a/b);
} catch (ArithmeticException e) { System.out.println("Divide by zero error!");
}
}

public static void main(String args[]){
try {
nestedTry(args);
} catch (ArrayIndexOutOfBoundsException e) { System.out.println("2 parameters are required!");
}
}
}



Bagaimana output program tersebut jika diimplementasikan terhadap argument
argument berikut :
a)  Tidak ada argume
b)  15
c)  15        3 
d)  15          0

0 komentar:

Posting Komentar