CodeGym /Java Blog /Random-IT /Java cattura più eccezioni
John Squirrels
Livello 41
San Francisco

Java cattura più eccezioni

Pubblicato nel gruppo Random-IT
Prima di apprendere come rilevare più eccezioni, è necessario acquisire familiarità con la gestione di base delle eccezioni in Java. Andando avanti, supponiamo che tu abbia familiarità con un blocco try e catch in Java.

Perché abbiamo bisogno di più blocchi catch in Java?

Più blocchi catch in Java vengono utilizzati per gestire diversi tipi di eccezioni. Prima del lancio di Java 7, avevamo bisogno di un blocco catch specifico per rilevare un'eccezione specifica. Ciò ha creato blocchi di codice ridondante e quindi ha portato a un approccio inefficiente. Dai un'occhiata al seguente esempio per testimoniare le eccezioni rilevate. Utilizza blocchi catch separati per diversi tipi di eccezioni.

Esempio di utilizzo di blocchi di cattura separati


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

Produzione

I colori totali su uno spettro sono: [7, 6, 5, 4, 3, 2, 1] Eccezione riscontrata java.lang.ArithmeticException: / by zero ----Il resto del codice viene eseguito qui----
Come puoi vedere, nell'esempio sopra viene eseguito un blocco diverso quando viene lanciata un'eccezione. Esiste un modo più efficiente per rilevare più eccezioni utilizzando lo stesso blocco di codice per rilevare eccezioni di tipi diversi. Dai un'occhiata al seguente esempio.

Esempio di utilizzo di più blocchi Catch 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----");
	}
}

Produzione

È possibile rimuovere il commento dalla riga 13 per stampare l'eccezione di altro tipo.
I colori totali su uno spettro sono: [7, 6, 5, 4, 3, 2, 1] Eccezione riscontrata java.lang.ArithmeticException: / by zero ----Il resto del codice viene eseguito qui----

Conclusione

Questa è stata una rapida panoramica dell'utilizzo del blocco java catch multiple exceptions. Come sfida, prova a stampare l'eccezione genitore e figlio nello stesso blocco. Sei incoraggiato a imparare e praticare per crescere. Saluti e buon apprendimento!
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION