CodeGym /Blog Java /Random-ES /Java Captura Múltiples Excepciones
Autor
John Selawsky
Senior Java Developer and Tutor at LearningTree

Java Captura Múltiples Excepciones

Publicado en el grupo Random-ES
Antes de aprender a capturar múltiples excepciones, debe familiarizarse con el manejo básico de excepciones en Java. En el futuro, asumimos que está familiarizado con un bloque de prueba y captura en Java.

¿Por qué necesitamos múltiples bloques catch en Java?

Se utilizan múltiples bloques catch en Java para manejar diferentes tipos de excepciones. Antes de que se lanzara Java 7, necesitábamos un bloque catch específico para capturar una excepción específica. Esto creó bloques de código redundante y, por lo tanto, resultó en un enfoque ineficiente. Eche un vistazo al siguiente ejemplo para presenciar las excepciones detectadas. Utiliza bloques catch separados para diferentes tipos de excepciones.

Ejemplo usando bloques de captura separados


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

Producción

Los colores totales en un espectro son: [7, 6, 5, 4, 3, 2, 1] Excepción encontrada java.lang.ArithmeticException: / por cero ----El resto del código se ejecuta aquí----
Como puede ver, en el ejemplo anterior, se ejecuta un bloque diferente cuando se lanza una excepción. Hay una manera más eficiente de capturar múltiples excepciones usando el mismo bloque de código para capturar excepciones de diferentes tipos. Echa un vistazo al siguiente ejemplo.

Ejemplo usando Multiple Catch Block 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----");
	}
}

Producción

Puede descomentar la línea 13 para imprimir la excepción de otro tipo.
Los colores totales en un espectro son: [7, 6, 5, 4, 3, 2, 1] Excepción encontrada java.lang.ArithmeticException: / por cero ----El resto del código se ejecuta aquí----

Conclusión

Esta fue una descripción general rápida del uso del bloque java catch multiple Exceptions. Como desafío, intente imprimir la excepción principal y secundaria en el mismo bloque. Se le anima a aprender y practicar para crecer. ¡Saludos y feliz aprendizaje!
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION