Detectar múltiples excepciones en Java

Rupam Yadav 12 octubre 2023
  1. Detecte múltiples excepciones usando múltiples declaraciones de captura en Java
  2. Detecte múltiples excepciones usando instanceOf en Java
  3. Detecte múltiples excepciones en un bloque de captura usando | en Java
Detectar múltiples excepciones en Java

Hoy veremos las formas en que podemos usar y detectar múltiples excepciones en Java. Una excepción en Java ocurre cuando ocurre un evento no deseado durante el tiempo de ejecución. La forma más común de ver una excepción es usar las palabras clave try-catch. Aquí, el try contiene el bloque de código a verificar, y el catch tiene el código para mostrar cuando ocurre una excepción.

Revisaremos los tres métodos para usar múltiples excepciones en una sola captura con los siguientes ejemplos.

Detecte múltiples excepciones usando múltiples declaraciones de captura en Java

En el ejemplo, tomamos las dos entradas de tipo int del usuario y luego las dividimos para mostrar el resultado. Observe que hemos incluido este código en un bloque try; significa que también debe tener un bloque catch.

Se pueden lanzar múltiples excepciones como la InputMismatchException cuando el valor ingresado no es de tipo int y la ArithmeticException cuando num2 obtiene el valor cero porque ningún número se divide por cero. Podemos lanzar una Excepción que es el padre de todas las demás excepciones.

Para capturarlos a todos, escribimos tres bloques catch diferentes con sus tipos de excepción e imprimimos el mensaje para mostrar cuándo ocurre esa excepción. La salida muestra los diferentes resultados cuando no hay excepción y cuando hay excepciones.

import java.util.InputMismatchException;
import java.util.Scanner;

public class MultiExceptions {
  public static void main(String[] args) {
    System.out.println("Enter two numbers: ");
    Scanner sc = new Scanner(System.in);
    try {
      System.out.println("num1: ");
      int num1 = sc.nextInt();

      System.out.println("num2: ");
      int num2 = sc.nextInt();

      int dividedNum = num1 / num2;

      System.out.println("After division result: " + dividedNum);

    } catch (InputMismatchException e1) {
      System.out.println("Error! - Please enter a number.");
    } catch (ArithmeticException e2) {
      System.out.println("Error! - You cannot divide any number with 0");
    } catch (Exception e3) {
      System.out.println("An error occurred please try again!");
    }
  }
}

Salida 1:

Enter two numbers : num1 : 10 num2 : 2 After division result : 5

Salida 2:

Enter two numbers : num1 : 50 num2 : hhh Error !-Please enter a number.

Salida 3:

Enter two numbers : num1 : 10 num2 : 0 Error !-You cannot divide any number with 0

Detecte múltiples excepciones usando instanceOf en Java

Otro método que puede hacer incluye usar la función instanceOf, que verifica si un objeto es del tipo dado o no; devuelve un valor booleano. Usamos el mismo ejemplo que el anterior, pero aquí usamos un solo bloque catch con múltiples sentencias if.

Como se discutió anteriormente, la Excepción es la clase principal de las excepciones más comunes. Podemos usar su objeto para verificar si la excepción lanzada es del tipo dado. Aquí, revisamos las dos excepciones: InputMismatchException y ArithmeticException.

import java.util.InputMismatchException;
import java.util.Scanner;

public class MultiExceptions {
  public static void main(String[] args) {
    System.out.println("Enter two numbers: ");
    Scanner sc = new Scanner(System.in);
    try {
      System.out.println("num1: ");
      int num1 = sc.nextInt();

      System.out.println("num2: ");
      int num2 = sc.nextInt();

      int dividedNum = num1 / num2;

      System.out.println("After division result: " + dividedNum);

    } catch (Exception e) {
      if (e instanceof InputMismatchException) {
        System.out.println("Error! - Please enter a number.");
      } else if (e instanceof ArithmeticException) {
        System.out.println("Error! - You cannot divide any number with 0");
      } else {
        System.out.println("An error occurred please try again!");
      }
    }
  }
}

Producción :

Enter two numbers: 
num1: 
d
Error! - Please enter a number.

Detecte múltiples excepciones en un bloque de captura usando | en Java

En Java 7 y versiones posteriores, podemos usar el símbolo de barra vertical u OR bit a bit para escribir múltiples excepciones en una sola captura. En el ejemplo, dividimos los dos números ingresados ​​y luego verificamos si alguna de las dos excepciones es verdadera. Si es cierto, se imprimirá el mensaje de error.

import java.util.InputMismatchException;
import java.util.Scanner;

public class MultiExceptions {
  public static void main(String[] args) {
    System.out.println("Enter two numbers: ");
    Scanner sc = new Scanner(System.in);
    try {
      System.out.println("num1: ");
      int num1 = sc.nextInt();

      System.out.println("num2: ");
      int num2 = sc.nextInt();

      int dividedNum = num1 / num2;

      System.out.println("After division result: " + dividedNum);

    } catch (InputMismatchException | ArithmeticException e) {
      System.out.println("An error occurred please try again");
    }
  }
}

Producción :

Enter two numbers: 
num1: 
f
An error occurred please try again
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java Exception