13 - MODUL Java Exception Handling
13 - MODUL Java Exception Handling
(CCC210)
MODUL 13
EXCEPTION HANDLING
DISUSUN OLEH
INDRIANI NOOR HAPSARI, ST, MT
B. Outline Topik
Exception adalah sebuah objek yang merepresentasikan terjadinya error pada saat
program dijalankan (runtime error). Ketika program dikompilasi, maka error ini belum
terdeteksi sampai program dijalankan dan terjadi kesalahan dalam operasinya.
Contoh kesalahan yang dapat terjadi pada saat runtime adalah sebagai berikut:
a. Pembagian dengan 0
b. Memanggil substring dari sebuah string dengan index melebihi panjang string
c. Mencoba membaca input dengan tipe yang salah melalui Scanner
d. Mencoba membaca file yang tidak ada
Dapat kita katakan bahwa sebuah program dengan kesalahan akan melempar
(throw) sebuah exception. Dan kita dapat menangani/memperbaiki exception
tersebut dengan “menangkapnya (catch)”.
Kata kunci try dan catch digunakan secara berpasangan sebagai berikut:
try {
// Block of code to try
} catch (Exception e) {
// Block of code to handle errors
}
Perhatikan contoh berikut ini. Contoh ini akan menghasilkan sebuah kesalahan,
karena myNumbers[10] tidak ada.
Apabila kesalahan tersebut tidak ditangani dalam penanganan exception, maka akan
ketika program dijalankan program akan berhenti dan melempar exception dengan
pesan berikut ini.
at Main.main(Main.java:4)
Berikut ini adalah contoh kode program yang melempar sebuah exception ketika nilai
age di bawah 18 dengan mencetak pesan “Access denied”. Jika age bernilai 18
atau lebih, maka program akan mencetak pesan “Access granted”.
at Main.checkAge(Main.java:4)
at Main.main(Main.java:12)
Agar program hanya menampilkan kesalahan tanpa berhenti berjalan, maka fungsi
checkAge harus dipanggil dalam blok try...catch sehingga kesalahan dapat
ditangani.
Checked Exception adalah sebuah error yang harus ditangani oleh program
(apabila tidak ditangani, maka program tersebut tidak dapat dikompilasi). Jika
beberapa kode dalam sebuah fungsi melempar Checked Exception, maka fungsi
tersebut harus melakukan salah satu dari dua hal berikut:
1. menangani exception tersebut dengan menuliskan blok try...catch atau
2. mendefinisikan exception tersebut dengan melempar katakunci throws pada
header fungsi.
file di lokasi “C:\ test\ a.txt” dan mencetak tiga baris pertama dari file tersebut.
import java.io.*;
class Main {
public static void main(String[] args) {
FileReader file = new FileReader("C:\\test\\a.txt");
BufferedReader fileInput = new BufferedReader(file);
fileInput.close();
}
}
thrown
at Main.main(Main.java:5)
import java.io.*;
class Main {
public static void main(String[] args) {
FileReader file = new FileReader("C:\\test\\a.txt");
BufferedReader fileInput = new BufferedReader(file);
Untuk memperbaiki program di atas agar dapat dikompilasi, maka kita harus
mendefinisikan daftar exception dengan menggunakan throws, atau perlu
menambahkan blok try...catch. Pada bagian ini, kita akan mendemonstrasikan
cara menggunakan throws di header fungsi.
import java.io.*;
class Main {
public static void main(String[] args) throws IOException {
FileReader file = new FileReader("C:\\test\\a.txt");
BufferedReader fileInput = new BufferedReader(file);
fileInput.close();
}
}
Pada kode program di atas, program akan melempar error dan berhenti apabila tidak
import java.io.*;
class Main {
public static void main(String[] args) {
try {
FileReader file = new FileReader("C:\\test\\a.txt");
BufferedReader fileInput = new BufferedReader(file);
fileInput.close();
} catch (IOException ex)
{
System.out.println(“File not found.”);
}
}
}
Apabila client dapat mengetahui dengan jelas apa yang harus dilakukan untuk
melakukan pemulihan dari sebuah exception, maka buatlah sebuah checked
exception. Jika client tidak dapat melakukan apapun untuk memulihkan dari sebuah
exception, maka buatlah unchecked exception.
Stuart Reges and Marty Stepp, Building Java Programs : A Back to Basics Approach,
Pearson, 2019.
buildingjavaprograms.com
https://docs.oracle.com/javase/tutorial/essential/exceptions/definition.html