CodeGym /Blog Java /rawak /Java Catch Pelbagai Pengecualian
John Squirrels
Tahap
San Francisco

Java Catch Pelbagai Pengecualian

Diterbitkan dalam kumpulan
Sebelum belajar tentang menangkap berbilang pengecualian, anda perlu biasa dengan pengendalian pengecualian asas dalam Java. Melangkah ke hadapan, kami menganggap anda sudah biasa dengan blok try and catch di Jawa.

Mengapa kita memerlukan beberapa blok tangkapan di Jawa?

Berbilang blok tangkapan dalam Java digunakan untuk mengendalikan pelbagai jenis pengecualian. Sebelum Java 7 dilancarkan, kami memerlukan blok tangkapan khusus untuk menangkap pengecualian tertentu. Ini mencipta blok kod berlebihan dan seterusnya menghasilkan pendekatan yang tidak cekap. Sila lihat contoh berikut untuk menyaksikan pengecualian yang ditangkap. Ia menggunakan blok tangkapan berasingan untuk pelbagai jenis pengecualian.

Contoh menggunakan Separate Catch Blocks


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----");
	}
}

Pengeluaran

Jumlah warna pada spektrum ialah: [7, 6, 5, 4, 3, 2, 1] Pengecualian Ditemui java.lang.ArithmeticException: / dengan sifar ----Kod yang selebihnya dilaksanakan di sini----
Seperti yang anda lihat, dalam contoh di atas blok yang berbeza dilaksanakan apabila pengecualian dilemparkan. Terdapat cara yang lebih cekap untuk menangkap berbilang pengecualian menggunakan blok kod yang sama untuk menangkap pengecualian daripada jenis yang berbeza. Sila lihat contoh berikut.

Contoh menggunakan Multiple Catch Block dalam 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----");
	}
}

Pengeluaran

Anda boleh membatalkan ulasan baris 13 untuk mencetak pengecualian jenis lain.
Jumlah warna pada spektrum ialah: [7, 6, 5, 4, 3, 2, 1] Pengecualian Ditemui java.lang.ArithmeticException: / dengan sifar ----Kod yang selebihnya dilaksanakan di sini----

Kesimpulan

Ini ialah gambaran keseluruhan pantas menggunakan java catch multiple exceptions block. Sebagai cabaran, cuba cetak pengecualian ibu bapa dan anak dalam blok yang sama. Anda digalakkan untuk belajar dan berlatih untuk berkembang. Ceria dan selamat belajar!
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION