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
  • Populair
  • Nieuw
  • Oud
Je moet ingelogd zijn om opmerkingen te kunnen maken
Deze pagina heeft nog geen opmerkingen