En JAVA se emplean las excepciones que permiten manejar estos errores y evitar que el programa simplemente los ignore o deje de funcionar.
Excepción
Es un evento que ocurre durante la ejecución de un programa que interrumpe el flujo normal de las instrucciones o sentencias.También, según la terminología JAVA, se llama así al objeto que contiene la información de la falla de un programa.
Clic en la imagen para agrandarla
Lanzamiento de una excepción
Es un mecanismo que informa al usuario que ha ocurrido un fallo que este no puede ignorar, en caso no se de tratamiento adecuado al fallo el programa termina inmediatamente.Se puede implementar en cualquier método o función, pues es independiente del valor de retorno.
Clase Exception
Las excepciones pueden pertenecer a las clase ERROR o la clase EXCEPTION, la primera indica fallos graves. La segunda son fallos menos severos que pueden ser manejados.Las excepciones del tipo EXCEPTION son clasificados en: excepciones comprobadas y no comprobadas. De estas heredan múltiples clases.
Excepciones "Checked" y "Unchecked"
La diferencia entre estas es que las excepciones comprobadas (Checked Exceptions) y las excepciones no comprobadas (Unchecked Exceptions) es que las excepciones comprobadas deben declararse en un método o constructor si pueden ser lanzadas por la ejecución de alguno de estos y propagarse fuera del límite de estos. Ya que son considerados fallos esperados en la ejecución del programa.Ejemplos de fallos esperados:
- Se intenta escribir en el disco, pero este se encuentra lleno.
- Se quiere cargar un archivo, pero no existe.
Bloque TRY-CATCH
Permite definir sentencias que pueden lanzar excepciones dentro del bloque TRY, y las excepciones capturadas en un CATCH. Además, se puede definir un método FINALLY que ejecutará sentencias existan o no excepciones.Estos bloques pueden ser sin o con recursos.
Sin recursos | Con recursos |
---|---|
|
|
Recursos
- Son los objetos que implementan a la interfaz java.lang.AutoCloseable, que incluye a la vez a todos los objetos que implementan a la interfaz java.io.Closeable.
- Estos objetos comparten un método en común que es el close().
- En versiones anteriores al JDK 1.8 se declara el objeto antes del TRY, y se debe cerrar en el FINALLY.
- Del JDK 1.8 en adelante, se puede declarar como recurso inmediatamente después de la palabra reservada TRY entre paréntesis y ya no es necesario aplicarle el método close().
- Se puede declarar múltiples recursos a la vez y se puede seguir empleando el bloque FINALLY para lo que se considere necesario.
Clic en la imagen para agrandarla
Fuentes
- Evans, B. J. y Flanagan, D. (2015) Java in a Nutshell (6a ed.). EUA: O’Reilly Media.
- BARNES, D. y KÖLLING, M. (2007). Programación orientada a objetos con Java. Una introducción práctica usando BlueJ (3a ed.). Madrid: PEARSON EDUCACIÓN.
- Oracle. (s.f.). Interface Autoclosable. Recuperado de: https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html
- Oracle. (s.f.). The try-with-resources Statement. Recuperado de: https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html
No hay comentarios:
Publicar un comentario