Detectar múltiples excepciones en Java
- Detecte múltiples excepciones usando múltiples declaraciones de captura en Java
-
Detecte múltiples excepciones usando
instanceOf
en Java -
Detecte múltiples excepciones en un bloque de captura usando
|
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArtículo relacionado - Java Exception
- Arreglar Java.Net.SocketException: error de tubería rota en Java
- Clase de excepción Java Throwable VS
- Comprender la excepción de tiempo de ejecución en Java
- Corrija la excepción Java.Net.BindException: la dirección ya está en uso: Bind
- El proceso de Java Gateway se cerró antes de enviar su número de puerto
- Excepción de entrada no válida en Java