en Java, hay dos tipos de excepciones:
1) marcadas: son las excepciones que se comprueban en tiempo de compilación. Si algún código dentro de un método lanza una excepción marcada, entonces el método debe manejar la excepción o debe especificar la excepción usando la palabra clave throws.
por ejemplo, considere el siguiente programa Java que abre el archivo en la ubicación «C:\test\a.txt» e imprime las tres primeras líneas., El programa no compila, porque la función main() usa FileReader() y FileReader() lanza una excepción marcada FileNotFoundException. También utiliza readLine() y close() los métodos, y estos métodos también lanzar marcada excepción IOException
Resultado:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown at Main.main(Main.java:5)
Para arreglar el programa anterior, necesitamos especificar la lista de excepciones en la lanza, o tenemos que usar bloque try-catch. Hemos utilizado tiros en el siguiente programa., Dado que FileNotFoundException es una subclase de IOException, podemos especificar IOException en la lista de lanzamientos y hacer que el compilador de programa anterior esté libre de errores.
Salida: tres Primeras líneas del archivo «C:\test\a.txt»
2) Unchecked son las excepciones que no se comprueban en la compilación. En c++, todas las excepciones no están marcadas, por lo que el compilador no obliga a manejar o especificar la excepción. Depende de los programadores ser civilizados, y especificar o atrapar las excepciones.,
en Java exceptions bajo Error y las clases RuntimeException son excepciones sin marcar, todo lo demás bajo throwable está marcado.
+-----------+ | Throwable | +-----------+ / \ / \ +-------+ +-----------+ | Error | | Exception | +-------+ +-----------+ / | \ / | \ \________/ \______/ \ +------------------+ unchecked checked | RuntimeException | +------------------+ / | | \ \_________________/ unchecked
considere el siguiente programa Java. Compila bien, pero lanza ArithmeticException cuando se ejecuta. El compilador le permite compilar, porque ArithmeticException es una excepción sin marcar.,2b7cfd03″>
;
int
y =
10
;
int
z = y/x;
}
}
Output:
Exception in thread "main" java.lang.ArithmeticException: / by zero at Main.main(Main.java:5)Java Result: 1
Why two types?,ver excepciones sin marcar-la controversia para más detalles.
¿debemos marcar o desmarcar nuestras excepciones?
a continuación se muestra la línea de fondo de Java documents
si se puede esperar razonablemente que un cliente se recupere de una excepción, hágala una excepción marcada. Si un cliente no puede hacer nada para recuperarse de la excepción, que sea una excepción sin marcar
Java Corner en GeeksforGeeks
Por favor escriba comentarios si encuentra algo incorrecto, o si desea compartir más información sobre el tema discutido anteriormente.
Attention reader! No dejes de aprender ahora., Obtenga todos los conceptos importantes de Java Foundation y Collections con los fundamentos de Java y el curso de Java Collections a un precio amigable para los estudiantes y prepárese para la industria.