CodeGym /Java-Blog /Random-DE /Java fängt mehrere Ausnahmen ab
Autor
John Selawsky
Senior Java Developer and Tutor at LearningTree

Java fängt mehrere Ausnahmen ab

Veröffentlicht in der Gruppe Random-DE
Bevor Sie lernen, wie man mehrere Ausnahmen abfängt, müssen Sie mit der grundlegenden Ausnahmebehandlung in Java vertraut sein. Für die Zukunft gehen wir davon aus, dass Sie mit einem Try-and-Catch-Block in Java vertraut sind.

Warum brauchen wir in Java mehrere Catch-Blöcke?

In Java werden mehrere Catch-Blöcke verwendet, um verschiedene Arten von Ausnahmen zu behandeln. Vor der Einführung von Java 7 benötigten wir einen bestimmten Catch-Block, um eine bestimmte Ausnahme abzufangen. Dies führte zu Blöcken redundanten Codes und führte somit zu einem ineffizienten Ansatz. Schauen Sie sich das folgende Beispiel an, um abgefangene Ausnahmen zu beobachten. Es verwendet separate Catch-Blöcke für verschiedene Arten von Ausnahmen.

Beispiel für die Verwendung separater Catch-Blöcke


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

Ausgang

Die Gesamtfarben in einem Spektrum sind: [7, 6, 5, 4, 3, 2, 1] Ausnahme aufgetreten java.lang.ArithmeticException: / durch Null ----Der Rest des Codes wird hier ausgeführt----
Wie Sie sehen können, wird im obigen Beispiel ein anderer Block ausgeführt, wenn eine Ausnahme ausgelöst wird. Es gibt eine effizientere Möglichkeit, mehrere Ausnahmen mithilfe desselben Codeblocks abzufangen, um Ausnahmen unterschiedlicher Art abzufangen. Schauen Sie sich das folgende Beispiel an.

Beispiel für die Verwendung von Multiple Catch Block in 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----");
	}
}

Ausgang

Sie können Zeile 13 auskommentieren, um Ausnahmen anderer Art auszudrucken.
Die Gesamtfarben in einem Spektrum sind: [7, 6, 5, 4, 3, 2, 1] Ausnahme aufgetreten java.lang.ArithmeticException: / durch Null ----Der Rest des Codes wird hier ausgeführt----

Abschluss

Dies war ein kurzer Überblick über die Verwendung des Java-Blocks zum Abfangen mehrerer Ausnahmen. Versuchen Sie als Herausforderung, die übergeordnete und die untergeordnete Ausnahme im selben Block zu drucken. Sie werden ermutigt, zu lernen und zu üben, um zu wachsen. Prost und viel Spaß beim Lernen!
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION