Sebelum belajar tentang menangkap banyak pengecualian, Anda harus terbiasa dengan penanganan pengecualian dasar di Jawa. Ke depan, kami anggap Anda sudah familiar dengan blok try and catch di Java.
Mengapa kita membutuhkan beberapa catch block di Java?
Beberapa blok tangkapan di Java digunakan untuk menangani berbagai jenis pengecualian. Sebelum Java 7 diluncurkan, kami membutuhkan blok tangkapan khusus untuk menangkap pengecualian tertentu. Ini menciptakan blok kode yang berlebihan dan karenanya menghasilkan pendekatan yang tidak efisien. Lihat contoh berikut untuk menyaksikan pengecualian yang tertangkap. Itu menggunakan blok tangkap terpisah untuk berbagai jenis pengecualian.Contoh menggunakan Blok Tangkap Terpisah
import java.util.Arrays;
public class ExceptionHandler {
public static void main(String[] args) {
Integer[] colorsOfASpectrum = { 7, 6, 5, 4, 3, 2, 1, 0 };
try {
System.out.println("Total number of options on a dice are: " + Arrays.toString(colorsOfASpectrum));
// un-comment the following line to see "Index Out of Bounds Exception"
// colorsOfASpectrum[10] = 7; // Index Out of Bounds Exception
System.out.println(colorsOfASpectrum[0] / 0); // Arithmetic Exception
} catch (ArrayIndexOutOfBoundsException e) {
// This catch block executes in case of "Index Out of Bounds Exception"
System.out.println("Array Index Out Of Bounds Exception " + e);
} catch (ArithmeticException e) {
// This catch block executes in case of "Arithmetic Exception"
System.out.println("Arithmetic Exception " + e);
}
System.out.println("\n----Rest of the code executes here----");
}
}
Keluaran
Total warna pada spektrum adalah: [7, 6, 5, 4, 3, 2, 1] Exception Encountered java.lang.ArithmeticException: / by zero ---- Kode lainnya dijalankan di sini----
Seperti yang Anda lihat, pada contoh di atas, blok yang berbeda dijalankan saat pengecualian dilemparkan. Ada cara yang lebih efisien untuk menangkap beberapa pengecualian menggunakan blok kode yang sama untuk menangkap pengecualian dari jenis yang berbeda. Lihat contoh berikut.
Contoh menggunakan Multiple Catch Block di Java
import java.util.Arrays;
public class MultiExceptionHandler {
public static void main(String[] args) {
Integer[] colorsOfASpectrum = { 7, 6, 5, 4, 3, 2, 1 };
try {
System.out.println("Total colors on a spectrum are: " + Arrays.toString(colorsOfASpectrum));
// colorsOfASpectrum[10] = 7; // Index Out of Bounds Exception
System.out.println(colorsOfASpectrum[0] / 0); // Arithmetic Exception
} catch (ArrayIndexOutOfBoundsException | ArithmeticException e) {
// We don't need two different catch blocks for different kinds of exceptions
// Both exceptions will be handled using this multiple catch block
System.out.println("Exception Encountered " + e);
}
System.out.println("\n----Rest of the code executes here----");
}
}
Keluaran
Anda dapat membatalkan komentar baris 13 untuk mencetak pengecualian jenis lain.
Total warna pada spektrum adalah: [7, 6, 5, 4, 3, 2, 1] Exception Encountered java.lang.ArithmeticException: / by zero ---- Kode lainnya dijalankan di sini----
GO TO FULL VERSION