Java Exception
Ketika mengeksekusi kode Java, beberapa kesalahan mungkin saja terjadi seperti kode error yang dibuat oleh programmer, kesalahan karena input yang salah, atau hal-hal lain yang tidak terduga. Ketika error terjadi, normalnya Java akan berhenti dan menghasilkan pesan error. Istilah teknis untuk ini adalah Java akan melempar sebuah exception (melempar sebuah error).
Java try dan catch
Statement try memungkinkan Anda untuk mendefinisikan blok kode yang akan diuji untuk kesalahan yang akan dieksekusi.
Statement catch memungkinkan Anda untuk mendefinisikan blok kode yang akan diuji, jika sebuah error terjadi di dalam blok try.
Keyword try dan catch selalu berpasangan :
try {
// blok kode try
} catch(Exception e) {
// blok kode untuk menangani error
}
Perhatikan contoh di bawah ini yang akan menghasilkan error, karena array nomorSaya dengan indeks 10 (nomorSaya[10]) tidak ada :
public class Main {
public static void main(String[] args) {
int[] nomorSaya = {1, 2, 3};
System.out.println(nomorSaya[10]); // error
}
}
Hasilnya akan seperti berikut :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at Main.main(Main.java:4)
Jika sebuah error terjadi, kita dapat menggunakan try…catch untuk menangkap error dan mengeksekusi beberapa kode untuk menanganinya. Contoh :
public class Main {
public static void main(String[] args) {
try {
int[] nomorSaya = {1, 2, 3};
System.out.println(nomorSaya);
} catch(Exception e) {
System.out.println("Terjadi kesalahan.");
}
}
}
Hasilnya akan seperti berikut :
Terjadi kesalahan.
Finally
Statement finally memungkinkan Anda untuk mengeksekusi kode setelah try…catch terlepas dari hasilnya. Contoh :
public class Main {
public static void main(String[] args) {
try {
int[] nomorSaya = {1, 2, 3};
System.out.println(nomorSaya[10]);
} catch(Exception e) {
System.out.println("Terjadi kesalahan.");
} finally {
System.out.println("'try...catch' sudah selesai.");
}
}
}
Hasilnya akan seperti berikut :
Terjadi kesalahan.
'try...catch' sudah selesai.
Keyword throw
Statement throw memungkinkan Anda untuk membuat error khusus. Statement throw digunakan bersama dengan tipe exception. Terdapat banyak tipe exception tersedia di Java seperti ArithmeticException, FileNotFoundException, ArrayIndexOutOfBoundsException, SecurityException, dll. Contoh di bawah ini memperlihatkan method cekUmur akan melempar sebuah exception jika umur di bawah 18 (cetak “Akses ditolak”). Sedangkan jika umur adalah 18 atau lebih besar, cetak “Akses diterima” :
public class Main {
static void cekUmur(int umur) {
if (umur < 18) {
throw new ArithmeticException("Akses ditolak - Anda setidaknya harus berumur lebih dari 18 tahun");
}
else {
System.out.println("Akses diterima - Anda sudah cukup umur");
}
}
public static void main(String[] args) {
cekUmur(15); // Mengatur umur ke 15 (dibawah 18...)
}
}
Hasilnya akan seperti berikut :
Exception in thread "main" java.lang.ArithmeticException: Akses ditolak - Anda setidaknya harus berumur lebih dari 18 tahun
at Main.checkAge(Main.java:4)
at Main.main(Main.java:12)
Jika umur 20, Anda tidak akan mendapatkan sebuah exception. Contoh :
cekUmur(20);
Hasilnya akan seperti berikut :
Akses diterima - Anda sudah cukup umur
Tutorial sebelumnya : Java Wrapper Class
Tutorial setelahnya : Java Regular Expressions
Semua Tutorial JAVA : Tutorial JAVA