CodeGym /Java блог /Случаен /Java улавя множество изключения
John Squirrels
Ниво
San Francisco

Java улавя множество изключения

Публикувано в групата
Преди да научите за улавянето на множество изключения, трябва да сте запознати с основната обработка на изключения в Java. Продължавайки напред, предполагаме, че сте запознати с блока try and catch в Java.

Защо се нуждаем от множество catch блокове в Java?

Множество catch блокове в Java се използват за обработка на различни типове изключения. Преди стартирането на Java 7 се нуждаехме от специфичен catch блок, за да уловим конкретно изключение. Това създаде блокове от излишен code и следователно доведе до неефективен подход. Разгледайте следния пример, за да станете свидетели на хванати изключения. Той използва отделни catch блокове за различни видове изключения.

Пример за използване на отделни блокове за улавяне


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

Изход

Общият брой цветове в спектъра е: [7, 6, 5, 4, 3, 2, 1] Възникнало изключение java.lang.ArithmeticException: / от нула ----Останалата част от codeа се изпълнява тук----
Както можете да видите, в примера по-горе се изпълнява различен блок, когато е хвърлено изключение. Има по-ефективен начин за улавяне на множество изключения, като се използва един и същ блок code за улавяне на изключения от различни типове. Разгледайте следния пример.

Пример за използване на Multiple Catch Block в 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----");
	}
}

Изход

Можете да отмените коментара на ред 13 за отпечатване на изключение от друг вид.
Общият брой цветове в спектъра е: [7, 6, 5, 4, 3, 2, 1] Възникнало изключение java.lang.ArithmeticException: / от нула ----Останалата част от codeа се изпълнява тук----

Заключение

Това беше бърз преглед на използването на java catch множество изключения блок. Като предизвикателство опитайте да отпечатате родителското и дъщерното изключение в един и същи блок. Вие сте насърчавани да учите и практикувате, за да растете. Наздраве и приятно учене!
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION