CodeGym /Java Blog /Acak /Java Menangkap Banyak Pengecualian
John Squirrels
Level 41
San Francisco

Java Menangkap Banyak Pengecualian

Dipublikasikan di grup Acak
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----

Kesimpulan

Ini adalah ikhtisar singkat menggunakan java menangkap beberapa blok pengecualian. Sebagai tantangan, coba cetak pengecualian induk dan anak di blok yang sama. Anda didorong untuk belajar dan berlatih untuk tumbuh. Semangat dan selamat belajar!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION