Pengecualian Java - Coba...Tangkap
Pengecualian Jawa
Saat mengeksekusi kode Java, kesalahan yang berbeda dapat terjadi: kesalahan pengkodean yang dibuat oleh programmer, kesalahan karena input yang salah, atau hal-hal lain yang tidak terduga.
Ketika terjadi kesalahan, Java biasanya akan berhenti dan menghasilkan pesan kesalahan. Istilah teknis untuk ini adalah: Java akan melempar pengecualian (melempar kesalahan).
Jawa coba dan tangkap
Pernyataan try
tersebut memungkinkan Anda untuk menentukan blok kode yang akan diuji kesalahannya saat sedang dieksekusi.
Pernyataan catch
tersebut memungkinkan Anda untuk menentukan blok kode yang akan dieksekusi, jika terjadi kesalahan pada blok try.
Kata kunci try
dan catch
berpasangan:
Sintaksis
try {
// Block of code to try
}
catch(Exception e) {
// Block of code to handle errors
}
Perhatikan contoh berikut:
Ini akan menghasilkan kesalahan, karena myNumbers[10] tidak ada.
public class Main {
public static void main(String[ ] args) {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]); // error!
}
}
Outputnya akan menjadi seperti ini:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at Main.main(Main.java:4)
Jika terjadi kesalahan, kita dapat menggunakan try...catch
untuk menangkap kesalahan dan mengeksekusi beberapa kode untuk menanganinya:
Contoh
public class Main {
public static void main(String[ ] args) {
try {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]);
} catch (Exception e) {
System.out.println("Something went wrong.");
}
}
}
Outputnya akan menjadi:
Something went wrong.
Akhirnya
Pernyataan finally
tersebut memungkinkan Anda mengeksekusi kode, setelah try...catch
, terlepas dari hasilnya:
Contoh
public class Main {
public static void main(String[] args) {
try {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]);
} catch (Exception e) {
System.out.println("Something went wrong.");
} finally {
System.out.println("The 'try catch' is finished.");
}
}
}
Outputnya akan menjadi:
Something went wrong.
The 'try catch' is finished.
Kata kunci lempar
Pernyataan throw
tersebut memungkinkan Anda membuat kesalahan khusus.
Pernyataan throw
tersebut digunakan bersama dengan tipe pengecualian . Ada banyak jenis pengecualian yang tersedia di Jawa: ArithmeticException
,
FileNotFoundException
, ArrayIndexOutOfBoundsException
, SecurityException
, dll:
Contoh
Berikan pengecualian jika usia di bawah 18 (cetak "Akses ditolak"). Jika usia 18 tahun atau lebih, cetak "Akses diberikan":
public class Main {
static void checkAge(int age) {
if (age < 18) {
throw new ArithmeticException("Access denied - You must be at least 18 years old.");
}
else {
System.out.println("Access granted - You are old enough!");
}
}
public static void main(String[] args) {
checkAge(15); // Set age to 15 (which is below 18...)
}
}
Outputnya akan menjadi:
Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be at least 18 years old.
at Main.checkAge(Main.java:4)
at Main.main(Main.java:12)
Jika usia adalah 20, Anda tidak akan mendapatkan pengecualian:
Contoh
checkAge(20);
Outputnya akan menjadi:
Access granted - You are old enough!