//PROGRAM 9-8
int[] A = new int[5];
class BanyakEksepsi {
A[5] = 100;
// SALAH, karena tidak terdapat
indeks ke-5 public static void test(int a, int b) { } try { int c = a / b;
}
System.out.println("Hasil bagi: " + c); int[] Arr = {1,2,3,4,5}; // array dengan 5 elemen
//PROGRAM 9-2 class ContohEksepsi2 {
Arr[10] = 11; // mengakses indeks ke-10
public static void main(String[] args) { int pembilang = 2;
} catch (ArithmeticException ae) { int penyebut = 0; System.out.println("Terdapat pembagian int hasil = pembilang/penyebut; // SALAH
dengan 0");
System.out.println("Hasil = " + hasil);
System.out.println(ae); } catch (ArrayIndexOutOfBoundsException oobe) {
} }
System.out.println("Indeks di luar rentang"); System.out.println(oobe); } }
//PROGRAM 9-3 class ContohEksepsi3 { public static void main(String[] args) {
public static void main(String[] args) { test(4, 0); // menimbulkan ArithmeticException System.out.println(); test(12, 4); // menimbulkan ArrayIndexOutOfBoundsException } }
int pembilang = 2; int penyebut = 0; try { int hasil = pembilang/penyebut; // menimbulkan eksepsi System.out.println("Hasil = " + hasil); // tidak dieksekusi } catch (ArithmeticException ae) { System.out.println("KESALAHAN: " +
//PROGRAM 9-1 class ContohEksepsi1 { public static void main(String[] args) {
"Terdapat pembagian dengan nol"); }
System.out.println("Statemen setelah blok trycatch");
System.out.println("Hasil = " + hasil); // tidak dieksekusi
}
} catch (Exception e) {
}
System.out.println(e.getMessage()); } System.out.println("Statemen setelah blok try-
//PROGRAM 9-4
catch"); class ContohEksepsi4 { } public static void main(String[] args) { }
int pembilang = 2; int penyebut = 0;
//PROGRAM 9-6 try { int hasil = pembilang/penyebut;
// SALAH
class ContohEksepsi6 { public static void main(String[] args) {
System.out.println("Hasil = " + hasil); // tidak dieksekusi
int pembilang = 2;
} catch (Exception e) {
int penyebut = 0;
System.out.println("KESALAHAN: " +
try {
"Terdapat pembagian dengan nol");
int hasil = pembilang/penyebut;
// SALAH
System.out.println("Hasil = " + hasil); // tidak
} System.out.println("Statemen setelah blok try-
dieksekusi
catch");
} catch (Exception e) {
}
e.printStackTrace(); // mencetak stack trace
}
} System.out.println("Statemen setelah blok trycatch");
//PROGRAM 9-5 } class ContohEksepsi5 { }
public static void main(String[] args) { int pembilang = 2;
//PROGRAM 9-17 int penyebut = 0; class DemoFinally { try { private static int i = 0; int hasil = pembilang/penyebut;
// SALAH public static void main(String[] args) {
// contoh penggunaan eksepsi
while (true) {
NegativeNumberException try { try { System.out.print("Pada saat i = " + i + ": "); throw new NegativeNumberException(); if (i++ == 0) { } catch (NegativeNumberException nne) {
throw new Exception(); // melempar
System.out.println("KESALAHAN:
eksepsi
bilangan negatif"); } } System.out.println("Tidak terjadi eksepsi"); }
} catch (Exception e) { System.out.println("Terdapat eksepsi");
} } finally { System.out.println("Statemen dalam blok finally\n");
//PROGRAM 9-19 class NegativeNumberException extends Exception {
if (i == 2) { break; // pada saat i==2, pengulangan akan berhenti } } } }
private int bilangan; // default constructor NegativeNumberException() { } // constructor dengan parameter bertipe String NegativeNumberException(String pesan) {
}
super(pesan); }
//PROGRAM 9-18
// constructor dengan parameter bertipe String dan int
// membuat eksepsi NegativeNumberException class NegativeNumberException extends
NegativeNumberException(String pesan, int nilai) {
Exception { super(pesan); // tidak ada kode di sini bilangan = nilai; } } class DemoMembuatEksepsi1 { public static void main(String[] args) {
public int getBilangan() { return bilangan;
}
}
}
System.out.println(); // memanggil method2()
class DemoMembuatEksepsi2 {
try {
public static void method1() throws
method2(); // baris 55
NegativeNumberException {
} catch (NegativeNumberException nne) {
System.out.println("Melempar eksepsi nne.printStackTrace();
dari method1()"); }
throw new NegativeNumberException(); // baris 29
System.out.println();
}
// memanggil method3()
public static void method2() throws NegativeNumberException {
try { method3(); // baris 63
System.out.println("Melempar eksepsi dari method2()");
} catch (NegativeNumberException nne) {
throw new // baris 34, dilanjutkan ke bawah NegativeNumberException("Parameter bertipe String");
nne.printStackTrace(); System.out.println("nne.bilangan = " + nne.getBilangan());
}
}
public static void method3() throws
}
NegativeNumberException { } System.out.println("Melempar eksepsi dari method3()"); throw new NegativeNumberException( // baris 39 "Parameter bertipe String dan int", -4);
//PROGRAM 9-20 class NegativeNumberException extends Exception {
}
private int bilangan;
public static void main(String[] args) {
// default constructor
// memanggil method1()
NegativeNumberException() {
try {
} method1(); // baris 47
} catch (NegativeNumberException nne) { nne.printStackTrace();
// constructor dengan parameter bertipe String NegativeNumberException(String pesan) { super(pesan);
System.out.println("Hasil = " +
} // constructor dengan parameter bertipe String
hitungFaktorial(5));
dan int
} catch (NegativeNumberException nne) {
NegativeNumberException(String pesan, int
System.out.println("Bilangan : " +
nilai) { nne.getBilangan()); super(pesan); nne.printStackTrace(); bilangan = nilai; } }
System.out.println("\nPada saat menghitung -
public int getBilangan() {
5!");
return bilangan;
try { System.out.println("Hasil = " + // baris
} 55 }
hitungFaktorial(-5)); class DemoMembuatEksepsi3 { } catch (NegativeNumberException nne) { public static int hitungFaktorial(int n) System.out.println("Bilangan : " + throws NegativeNumberException { nne.getBilangan()); if (n < 0) { nne.printStackTrace();
throw new NegativeNumberException( // baris 31
}
"Bilangan tidak boleh negatif", n);
}
}
}
int hasil = 1;
//PROGRAM 9-13
for (int i=n; i>=1; i--) {
class Barang {
hasil *= i;
private String kode;
}
private String nama;
return hasil;
private double harga;
}
public void setKode(String vKode) {
public static void main(String[] args) {
try {
System.out.println("Pada saat menghitung 5!");
kode = vKode;
try {
if (kode == null) {
throw new NullPointerException(); }
} }
} catch (NullPointerException npe) {
class DemoThrow {
System.out.println("KESALAHAN: " +
public static void main(String[] args) {
"Kode barang tidak boleh null");
Barang obj = new Barang();
}
obj.setKode(null);
}
obj.setNama("Buku tulis");
public String getKode() {
obj.setHarga(2500); System.out.println("\nKode : " +
return kode;
obj.getKode()); } System.out.println("Nama : " + public void setNama(String vNama) {
obj.getNama());
try {
System.out.println("Harga : " + obj.getHarga());
nama = vNama; if (nama == null) {
} }
throw new NullPointerException(); }
//PROGRAM 9-15
} catch (NullPointerException npe) { System.out.println("KESALAHAN: " + "Nama barang tidak boleh null");
class DemoThrows { public static void test() throws IllegalAccessException { throw new IllegalAccessException(
}
"KESALAHAN: illegal access");
} public String getNama() { return nama;
} public static void main(String[] args) { try {
}
test();
public void setHarga(int vHarga) { harga = vHarga;
} catch (Exception e) { System.out.println("Eksepsi ditangkap di
}
sini...");
public double getHarga() { return harga;
System.out.println(e.getMessage()); }
System.out.println("Statemen setelah blok trycatch"); //PROGRAM 9-12 } class DemoTryBersarang { } private static final int MAX = 100; //PROGRAM 9-16
public static void test(int n) {
class DemoThrows2 {
// blok try-catch bagian luar
public static void test(int n) try { throws NullPointerException, double hasil = MAX / n;
ArithmeticException {
System.out.println("Hasil bagi : " + hasil);
if (n < 0) {
// blok try-catch bagian dalam
throw new NullPointerException(
try {
"KESALAHAN: null pointer");
int[] Arr = {1,2,3,4,5};
} else { throw new ArithmeticException(
System.out.println("Arr[" + n + "] : " + Arr[n]);
"KESALAHAN: arithmetic exception"); } catch (NullPointerException npe) { } System.out.println("Pointer null"); } System.out.println(npe); public static void main(String[] args) { } try { } catch (ArithmeticException ae) { //test(-12); // menimbulkan eksepsi NullPointerException
System.out.println("Terjadi pembagian dengan 0");
test(0); // menimbulkan eksepsi System.out.println(ae);
ArithmeticException
} catch (Exception e) {
} catch (Exception e) {
System.out.println("Eksepsi generik...");
System.out.println("Eksepsi ditangkap di sini...");
System.out.println(e);
System.out.println(e.getMessage()); } System.out.println("Statemen setelah blok trycatch"); } }
} } public static void main(String[] args) { test(0); // menimbulkan ArithmeticException System.out.println();
test(20); // menimbulkan
System.out.println("Hasil : " + hasil);
ArrayIndexOutOfBoundsException } catch (Exception e) { } System.out.println("Eksepsi generik..."); } } catch (ArithmeticException ae) { //PROGRAM 9-14 class ProgramSalah {
System.out.println("Tidak akan pernah dieksekusi");
public static void test() {
}
throw new IllegalAccessException( // penyebab kesalahan
} }
"KESALAHAN: illegal access"); } //PROGRAM 9-10 public static void main(String[] args) {
class UrutanCatch2 {
try {
public static void main(String[] args) {
test(); int bilangan = 12; } catch (Exception e) { int pembagi = 0; System.out.println(e.getMessage()); try { } int hasil = bilangan / pembagi; System.out.println("Statemen setelah blok trySystem.out.println("Hasil : " + hasil);
catch");
} catch (ArithmeticException ae) {
}
System.out.println("Terdapat pembagian dengan 0");
}
} catch (Exception e) { //PROGRAM 9-9 System.out.println("Eksepsi generik..."); class UrutanCatch1 { } }
public static void main(String[] args) { } int bilangan = 12; int pembagi = 0;
//PROGRAM 9-11
try {
class UrutanCatch3 {
int hasil = bilangan / pembagi;
public static void main(String[] args) {
int bilangan = 12; int pembagi = 4; try { int hasil = bilangan / pembagi; System.out.println("Hasil : " + hasil); int[] Arr = {1,2,3,4,5}; Arr[10] = 11; } catch (ArithmeticException ae) { System.out.println("Terjadi pembagian dengan 0"); } catch (Exception e) { System.out.println("Eksepsi generik dieksekusi"); } } }