CodeGym /Java Blog /Willekeurig /Java vangt meerdere uitzonderingen op
John Squirrels
Niveau 41
San Francisco

Java vangt meerdere uitzonderingen op

Gepubliceerd in de groep Willekeurig
Voordat u meer leert over het afvangen van meerdere uitzonderingen, moet u bekend zijn met de basisafhandeling van uitzonderingen in Java. In de toekomst gaan we ervan uit dat u bekend bent met een try-and-catch-blok in Java.

Waarom hebben we meerdere catch-blokken nodig in Java?

Meerdere catch-blokken in Java worden gebruikt om verschillende soorten uitzonderingen af ​​te handelen. Voordat Java 7 werd gelanceerd, hadden we een specifiek catch-blok nodig om een ​​specifieke uitzondering op te vangen. Dit creëerde blokken overbodige code en resulteerde dus in een inefficiënte aanpak. Bekijk het volgende voorbeeld om getuige te zijn van gevangen uitzonderingen. Het gebruikt afzonderlijke catch-blokken voor verschillende soorten uitzonderingen.

Voorbeeld met behulp van afzonderlijke Catch-blokken


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

Uitgang

Het totale aantal kleuren in een spectrum is: [7, 6, 5, 4, 3, 2, 1] Uitzondering aangetroffen java.lang.ArithmeticException: / by zero ---- Rest van de code wordt hier uitgevoerd ----
Zoals je kunt zien, wordt in het bovenstaande voorbeeld een ander blok uitgevoerd wanneer er een uitzondering wordt gegenereerd. Er is een efficiëntere manier om meerdere uitzonderingen op te vangen door hetzelfde codeblok te gebruiken voor het opvangen van uitzonderingen van verschillende typen. Kijk eens naar het volgende voorbeeld.

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

Uitgang

U kunt het commentaar op regel 13 ongedaan maken om de uitzondering van een andere soort af te drukken.
Het totale aantal kleuren in een spectrum is: [7, 6, 5, 4, 3, 2, 1] Uitzondering aangetroffen java.lang.ArithmeticException: / by zero ---- Rest van de code wordt hier uitgevoerd ----

Conclusie

Dit was een snel overzicht van het gebruik van java catch multiple exceptions block. Probeer als uitdaging de bovenliggende en de onderliggende uitzondering in hetzelfde blok af te drukken. Je wordt aangemoedigd om te leren en te oefenen om te groeien. Proost en veel leerplezier!
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION