CodeGym /Blog Java /Random-FR /Java intercepte plusieurs exceptions
Auteur
John Selawsky
Senior Java Developer and Tutor at LearningTree

Java intercepte plusieurs exceptions

Publié dans le groupe Random-FR
Avant d'apprendre à intercepter plusieurs exceptions, vous devez vous familiariser avec la gestion des exceptions de base en Java. À l'avenir, nous supposons que vous êtes familiarisé avec un bloc try and catch en Java.

Pourquoi avons-nous besoin de plusieurs blocs catch en Java ?

Plusieurs blocs catch en Java sont utilisés pour gérer différents types d'exceptions. Avant le lancement de Java 7, nous avions besoin d'un bloc catch spécifique pour intercepter une exception spécifique. Cela a créé des blocs de code redondants et a donc abouti à une approche inefficace. Jetez un oeil à l'exemple suivant pour voir les exceptions interceptées. Il utilise des blocs catch séparés pour différents types d'exceptions.

Exemple utilisant des blocs catch séparés


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

Sortir

Le nombre total de couleurs sur un spectre est : [7, 6, 5, 4, 3, 2, 1] Exception rencontrée java.lang.ArithmeticException : / par zéro ----Le reste du code s'exécute ici----
Comme vous pouvez le voir, dans l'exemple ci-dessus, un bloc différent est exécuté lorsqu'une exception est levée. Il existe un moyen plus efficace d'intercepter plusieurs exceptions en utilisant le même bloc de code pour intercepter des exceptions de différents types. Jetez un oeil à l'exemple suivant.

Exemple utilisant plusieurs blocs de capture en 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----");
	}
}

Sortir

Vous pouvez décommenter la ligne 13 pour imprimer l'exception d'un autre type.
Le nombre total de couleurs sur un spectre est : [7, 6, 5, 4, 3, 2, 1] Exception rencontrée java.lang.ArithmeticException : / par zéro ----Le reste du code s'exécute ici----

Conclusion

C'était un aperçu rapide de l'utilisation du bloc d'exceptions multiples java catch. En tant que défi, essayez d'imprimer l'exception parent et l'exception enfant dans le même bloc. Vous êtes encouragé à apprendre et à pratiquer pour grandir. Bravo et bon apprentissage !
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION