More Related Content
Similar to Modul 8 pbo (17)
More from arrofikzulkarnaen
More from arrofikzulkarnaen (6)
Modul 8 pbo
- 1. Hak Cipta © pada Inggih Permana
Modul 8 Exception
“Jangan bekerja dengan hati, tetapi biarkanlah hati yang bekerja (Nasihat Sufi)”
Exception merupakan salah satu bagian penting dari Java yang harus dikuasai oleh setiap orang yang
belajar Java. Exception adalah salah satu bentuk penangan kesalahan dalam Java. Kesalahan di Java bisa
terjadi karena pengguna ataupun programmer. Meskipun kesalahan di Java tidak hanya bisa ditangani
dengan exception, tetapi exception mempermudah menangani kesalahan di Java.
Exception Sederhana
Sebuah exception menggunakan sintaks try{ ... } catch(Excrption e){ ... }. Di dalam kalang tyr berisi aksi
normal yang dibuat, sedangkan didalam kalang catch{} berisi aksi yang terjadi jika sebuah kesalahan
terjadi.
try{
aksi normal
}
catch(jenisException e){
aksi jika kesalahan terjadi
}
Contoh
public class Mahasiswa {
String nilaiHuruf(double nilaiAngka){
try{
if (nilaiAngka > 100){
throw new Exception("Inputan nilai besar dari 100");
}
if (nilaiAngka < 0){
throw new Exception("Inputan nilai kecil dari 0");
}
String huruf = "";
if (nilaiAngka <= 100 && nilaiAngka >= 80){
huruf = "A";
}
else if (nilaiAngka < 80 && nilaiAngka >= 0){
huruf = "B";
}
return huruf;
}
catch(Exception e){
String pesan = e.getMessage();
return pesan;
}
}
}
- 2. Hak Cipta © pada Inggih Permana
Pada kode diatas jika nilai besar dari 100 atau kecil dari 0 maka aksi akan dilempar ke dalam
pengucalian. Jenis exception yang digunakan adalah ;exception’, yang berada dalam hirarki paling atas
dalam jenis exception.
Contoh penggunaan
public class TesException {
public static void main(String[] args){
Mahasiswa mhs = new Mahasiswa();
String nilai = mhs.nilaiHuruf(-10);
System.out.println("Nilai = "+nilai);
}
}
Jenis-Jenis Exception
Berikut jenis-jenis exception yang digambarkan secara hirarki.
Exception
ClassNotFoundException
CloneNotSupportedException
IllegalAccessException
InstantiationException
InterruptedException
NoSuchMethodException
NoSuchFieldException
RunTimeException
ArithmeticException
ArrayStoreException
ClassCastException
IllegalArgumentException
- IllegalThreadStateException
- NumberFormatException
IllegalStateException
IllegalMonitorStateException
IndexoutOfBoundsException
- ArrayIndexoutOfBoundsException
- StringIndexoutOfBoundsException
NegativeArraySizeException
NullPointerException
SecurityException
Semua yang ada di daftar diatas adalah jenis-jenis exception, dan tentunya semua bisa dipakai dalam
pembuatan sebuah exception. Untuk fungsi masing exception tersebut silahkan anda explore sendiri.
- 3. Hak Cipta © pada Inggih Permana
Contoh
public class ContohExecption {
void tesException(){
try{
double x = 3/0;
}
catch(ArithmeticException ae){
System.out.println("Ada kesalahan dalam perhitungan matematis");
}
}
}
Pada kode diatas digunakan exception jenis ArithmeticException. Tipe ini akan menangani masalah-
masalah kesalaha aritmatika. Pada contoh diatas terjadi kesalahan aritmatika, yaitu ada bilangan yang
dibagi dengan 0, dan hasilnya tidak akan terdefenisi.
Contoh penggunaan
public class TesException2 {
public static void main(String[] args){
ContohExecption ce = new ContohExecption();
ce.tesException();
}
}
Multiple Exception
Anda bisa menggunakan lebih dari satu jenis exception secara bersamaan. Caranya adalah hanya dengan
menambahkan catch nya. Untuk lebih jelasnya perhatikan ilustrasi berikut.
try{
aksi normal
}
catch(jenisException_1 e){
aksi jika kesalahan terjadi
}
catch(jenisException_2 e){
aksi jika kesalahan terjadi
}
...
…
…
catch(jenisException_n e){
aksi jika kesalahan terjadi
}
- 4. Hak Cipta © pada Inggih Permana
Contoh
public class ContohExecption {
void tesException(){
try{
double x = 3/0;
double[] y = new double[3];
y[4] = x;
}
catch(ArithmeticException ae){
System.out.println("Ada kesalahan dalam perhitungan matematis");
}
catch(ArrayIndexOutOfBoundsException aie){
System.out.println("Indeks array melebihi batas");
}
}
}
Pada contoh diatas dipakai dua buah exception, yaitu ArithmeticException dan
ArrayIndexOutOfBoundsException. Berikut contoh penggunaannya.
public class TesException2 {
public static void main(String[] args){
ContohExecption ce = new ContohExecption();
ce.tesException();
}
}
finally
finally adalah aksi yang dilakukan setelah statement di dalam kalang try{} atau catch(){} dieksekusi.
Untuk lebih jelasnya perhatikan ilustrasi di bawah ini.
try{
aksi normal
}
catch(jenisException_1 e){
aksi jika kesalahan terjadi
}
catch(jenisException_2 e){
aksi jika kesalahan terjadi
}
catch(jenisException_n e){
aksi jika kesalahan terjadi
}
finally{
aksi yang dilakukan setelah try
atau catch dieksekusi
}
- 5. Hak Cipta © pada Inggih Permana
Contoh
public class ContohException2 {
void tesException(){
try{
double x = 3/0;
double[] y = new double[3];
y[4] = x;
}
catch(ArithmeticException ae){
System.out.println("Ada kesalahan dalam perhitungan matematis");
}
catch(ArrayIndexOutOfBoundsException aie){
System.out.println("Indeks array melebihi batas");
}
finally{
System.out.println("Kode sudah dieksekusi");
}
}
}
public class TesException3 {
public static void main(String[] args){
ContohException2 ce = new ContohException2();
ce.tesException();
}
}
throws
Throws adalah sintaks untuk membuat sebuah method mempunyai beberapa exception. Nanti
statement yang menggunakan method tersebut harus menerapkan try{} dan catch(){}.
return_value nama_method() throws exception1, exception2, …, exception n{
isi method
}
Contoh
public class ContohException4 {
void tesException() throws ArithmeticException,
ArrayIndexOutOfBoundsException{
double x = 3/0;
double[] y = new double[3];
y[4] = x;
}
}
- 6. Hak Cipta © pada Inggih Permana
public class TesException4 {
public static void main(String[] args){
try{
ContohException4 ce = new ContohException4();
ce.tesException();
}
catch(ArithmeticException ae){
System.out.println("Ada kesalahan dalam perhitungan matematis");
}
catch(ArrayIndexOutOfBoundsException aie){
System.out.println("Indeks array melebihi batas");
}
}
}