La excepción no reportada debe ser capturada o declarada como lanzada
- Java Error “la excepción no informada debe ser capturada o declarada para ser lanzada”
- Manejar la excepción en la función de llamada en Java
- Hacer que la función de llamada arroje la misma excepción en Java
Java es un lenguaje orientado a objetos, fuertemente tipado y compilado y tiene el concepto de clases para aprovechar diferentes aspectos de la programación como la herencia y el polimorfismo. También es un buen soporte para manejar excepciones debido a funciones altamente anidadas.
Este artículo demostrará el error de tiempo de compilación la excepción no informada debe detectarse o declararse lanzada
en Java.
Java Error “la excepción no informada debe ser capturada o declarada para ser lanzada”
Considere el siguiente ejemplo de código.
public class MyApp {
public static void main(String[] args) {
System.out.println("Hello World");
System.out.println(divide(3, 0));
}
public static int divide(int a, int b) throws Exception {
int c = a / b;
return c;
}
}
El siguiente error se obtiene cuando el ejemplo de código anterior se compila utilizando javac MyApp.java
.
MyApp.java:7: error: unreported exception Exception; must be caught or declared to be thrown
System.out.println(divide(3,0));
^
1 error
Entonces, ¿Que esta pasando aquí?
La función divide(int a, int b)
arroja una Excepción
que no se captura ni se maneja en ninguna parte de la función de llamada, que en este caso es main(String[] args)
. Se puede resolver manejando la excepción o haciendo que la función de llamada arroje la misma excepción.
Manejar la excepción en la función de llamada en Java
Entonces, en la última sección, este fue uno de los enfoques para resolver el error. Entendámoslo con un ejemplo considerando el ejemplo de código discutido anteriormente.
public class MyApp {
public static void main(String[] args) {
System.out.println("Hello World");
try {
System.out.println(divide(3, 0));
} catch (Exception e) {
System.out.println("Division by zero !!!");
}
}
public static int divide(int a, int b) throws Exception {
int c = a / b;
return c;
}
}
Ahora, cuando intentamos compilar el código, se compila con éxito y se obtiene el siguiente resultado al ejecutar el código.
Hello World
Division by zero !!!
Por lo tanto, la excepción ahora se maneja en el método main
, y se ejecuta la instrucción print
en el bloque catch
.
Hacer que la función de llamada arroje la misma excepción en Java
Entonces, el otro enfoque es hacer que la función de llamada también arroje la misma excepción. Tomemos un ejemplo de cómo se puede lograr eso.
public class MyApp {
public static void main(String[] args) throws Exception {
System.out.println("Hello World");
try {
performOperation();
} catch (Exception e) {
System.out.println("Division by zero!!");
}
}
public static void performOperation() throws Exception {
divide(3, 0);
}
public static int divide(int a, int b) throws Exception {
int c = a / b;
return c;
}
}
Así que hemos tomado el ejemplo anterior y hemos añadido una función adicional, performOperation()
, en el medio. Hemos hecho que la función performOperation()
también arroje la misma Excepción
que divide(int a, int b)
; por lo tanto, se compila con éxito y se puede obtener el mismo resultado.
Artículo relacionado - Java Error
- Arreglar Java fue iniciado por el código de salida devuelto = 1
- Arreglar JAVA_HOME no se puede determinar a partir del error de registro en R
- Arreglar java.io.IOException: No queda espacio en el dispositivo en Java
- Arreglar Java.IO.NotSerializableException en Java
- Arreglar Java.Lang.IllegalStateException de Android: no se pudo ejecutar el método de la actividad
- Arreglar Java.Lang.NoClassDefFoundError: No se pudo inicializar el error de clase