El manejo de excepciones es una de las características más importantes de la programación Java que nos permite manejar errores en tiempo de ejecución causados por excepciones. En esta guía aprenderemos qué es una excepción, sus tipos, clases de excepción y cómo manejar excepciones en Java con ejemplos.
¿Qué es una excepción?
Una excepción es un evento no deseado que interrumpe el flujo normal del programa. Cuando ocurre una excepción, se aborta la ejecución del programa. En tales casos, se muestra un mensaje de error generado por el sistema. Lo bueno de las excepciones es que se pueden manejar en Java. Al manejar las excepciones, podemos proporcionar un mensaje significativo al usuario sobre el problema en lugar de un mensaje generado por el sistema, que puede no ser comprensible para el usuario.
¿Por qué ocurre una excepción?
Puede haber varias razones que pueden hacer que un programa genere una excepción. Por ejemplo: abrir un archivo que no existe en el programa, problema de conexión a la red, datos de entrada incorrectos proporcionados por el usuario, etc.
El manejo de excepciones
Si ocurre una excepción, que no fue manejada por el programador, la ejecución del programa se aborta y se muestra al usuario un mensaje de error generado por el sistema. Por ejemplo, observe la excepción lanzada por el sistema a continuación:
A continuación se proporciona una excepción generada por el sistema
Exception in thread "main" java.lang.ArithmeticException: / by zero at ExceptionDemo.main(ExceptionDemo.java:5) ExceptionDemo : The class name main : The method name ExceptionDemo.java : The filename java:5 : Line number
Este mensaje no es fácil de usar, por lo que el usuario no podrá averiguar qué salió mal. Para hacerles saber el motivo en un lenguaje sencillo, manejamos excepciones. Manejamos estas condiciones y luego imprimimos un mensaje de advertencia fácil de usar para el usuario, que le permite corregir el error ya que la mayoría de las veces ocurre una excepción debido a datos incorrectos proporcionados por el usuario.
Ventaja del manejo de excepciones
El manejo de excepciones asegura que el flujo del programa no se detenga cuando ocurre una excepción. Por ejemplo, si un programa tiene un grupo de sentencias y se produce una excepción a la mitad de la ejecución de determinadas sentencias, las sentencias posteriores a la excepción no se ejecutarán y el programa terminará abruptamente.
Al manejarlo, nos aseguramos de que se ejecuten todas las instrucciones y que el flujo del programa no se detenga.
Diferencia entre error y excepción
Errores indican que algo bastante serio ha salido mal, la aplicación debería fallar en lugar de intentar manejar el error.
Excepciones son eventos que ocurren en código. Un programador puede gestionar estas condiciones y tomar las acciones correctivas necesarias. Algunos ejemplos:
NullPointerException: al intentar utilizar una referencia que apunta a nulo.
ArithmeticException: cuando el usuario proporciona datos incorrectos, por ejemplo, al intentar dividir un número por cero, esta excepción se produce porque la división de un número por cero no está definida.
ArrayIndexOutOfBoundsException: cuando intenta acceder a elementos de una matriz fuera de sus límites, por ejemplo, el tamaño de la matriz es 5 (lo que significa que tiene cinco elementos) y está intentando acceder al décimo elemento.
Tipos de excepciones
Hay dos tipos de excepciones en Java:
1) Excepciones marcadas
2) Excepciones sin marcar
He cubierto esto en detalle en un tutorial separado: Excepciones seleccionadas y sin marcar en Java.
Excepciones marcadas
Todas las excepciones que no sean excepciones en tiempo de ejecución se conocen como excepciones comprobadas ya que el compilador las comprueba durante la compilación para ver si el programador las manejó o no. Si estas excepciones no se manejan / declaran en el programa, obtendrá un error de compilación. Por ejemplo, SQLException, IOException, ClassNotFoundException, etc.
Excepciones sin marcar
Las excepciones en tiempo de ejecución también se conocen como excepciones no comprobadas. Estas excepciones no se verifican en el momento de la compilación, por lo que el compilador no verifica si el programador las manejó o no, pero es responsabilidad del programador manejar estas excepciones y proporcionar una salida segura. Por ejemplo, ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException, etc.
El compilador nunca lo obligará a detectar una excepción de este tipo ni lo obligará a declararla en el método utilizando la palabra clave throws.
Qué temas se tratan en los próximos tutoriales
- Intente capturar en Java
- Prueba la captura anidada
- Excepciones seleccionadas y no verificadas
- Finalmente bloquear en Java
- tratar de atrapar finalmente
- finalmente la declaración de bloqueo y devolución
- Lanzar excepción en Java
- Ejemplo de palabra clave de lanzamiento
- Ejemplo de cláusula de lanzamientos
- Dispara en Java
- tirar vs tirar
- Ejemplos de manejo de excepciones