Excepción no controlada en Java
Este tutorial presenta qué es una excepción no controlada y cómo manejarla en Java.
Una excepción es una condición que detiene la ejecución de un código de manera anormal y conduce a la terminación del código.
En Java, las excepciones pueden ocurrir debido a un código incorrecto o una falla del sistema, como problemas de memoria. Java proporciona soporte completo para manejar las excepciones para que el código pueda ejecutarse sin problemas sin terminación y proporcionar el resultado deseado.
Una excepción que no se maneja se llama excepción no manejada y lleva a terminar el código antes de su ejecución.
En este artículo, analizaremos qué es una excepción no controlada y cómo manejarla. Entendamos con algunos ejemplos.
Excepción no controlada en Java
En este ejemplo, tomaremos dos valores enteros de un usuario y los dividiremos. Este código funciona bien sin ningún error o excepción, pero Java no ejecuta el código y genera una excepción si el divisor es cero.
Como no usamos ningún controlador de excepciones aquí, el código detiene la ejecución y termina de forma anormal. Podemos ver la consola para comprender el motivo de la excepción.
Esta excepción no se maneja y podemos ver cuán peligrosa puede ser si no se manejó correctamente.
import java.util.Scanner;
public class SimpleTesting {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter any two values");
int val1 = sc.nextInt();
int val2 = sc.nextInt();
double result = val1 / val2;
System.out.println("result " + result); // this statement does not execute
}
}
Producción :
Enter any two values
30
0
Exception in thread "main" java.lang.ArithmeticException: / by zero
at myproject.SimpleTesting.main(SimpleTesting.java:13)
Excepción Manejada en Java
Aquí, estamos usando un controlador (bloque try-catch) para manejar la excepción. Este código es similar al código anterior, excepto que tiene el bloque try-catch
y permite que el código se ejecute incluso después de la excepción.
Observe la última declaración impresa del código. En el código anterior, esta declaración no se ejecuta debido a una excepción.
Aún así, se ejecuta incluso después de obtener una excepción en el siguiente código porque ahora el código no termina. Además, omite el código y comienza a ejecutarse imprimiendo el resultado en la consola.
Vea el ejemplo a continuación.
import java.util.Scanner;
public class SimpleTesting {
public static void main(String[] args) {
double result = 0.0;
try {
Scanner sc = new Scanner(System.in);
System.out.println("Enter any two values");
int val1 = sc.nextInt();
int val2 = sc.nextInt();
result = val1 / val2;
} catch (Exception e) {
System.out.println("Exception occured " + e);
}
System.out.println("result " + result);
}
}
Producción :
Enter any two values
30
0
Exception occured java.lang.ArithmeticException: / by zero
result 0.0
Artí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