17.10 Manejo de excepciones y jerarquía de excepciones en Java

El manejo de excepciones en Java es un componente fundamental para crear aplicaciones sólidas y confiables. Una excepción es un evento que ocurre durante la ejecución de un programa, interrumpiendo el flujo normal de instrucciones. Cuando ocurre este evento, es necesario tener un mecanismo que capture y maneje esta ocurrencia para que el programa pueda continuar operando o terminar de manera controlada.

Jerarquía de excepciones en Java

En Java, todas las excepciones son descendientes de la clase Throwable. A partir de ahí, hay dos subclases principales: Error y Exception. La clase Error se utiliza para condiciones graves que una aplicación normalmente no debería intentar detectar, como problemas de JVM (Java Virtual Machine). La clase Exception es la que querrás detectar y manejar en tu programa.

Las excepciones de tipo Exception se dividen en dos categorías: excepciones marcadas (excepciones marcadas) y excepciones no marcadas (excepciones no marcadas). Los marcados son aquellos que el compilador requiere que sean tratados o declarados en la firma del método a través de la cláusula throws. Los no marcados, que incluyen las subclases RuntimeException y Error, no necesitan ser manejados ni declarados explícitamente.

Buenas prácticas en el manejo de excepciones

Un buen manejo de excepciones es crucial para la confiabilidad y mantenibilidad del código. Estas son algunas buenas prácticas:

  • Usar excepciones para condiciones excepcionales: Las excepciones deben usarse para situaciones anormales o inesperadas. No los utilice para el control normal del flujo del programa.
  • Solo detecte excepciones que pueda manejar: No detecte una excepción a menos que tenga una estrategia clara para manejarla. Detectar una excepción y no hacer nada puede ocultar un problema en su código.
  • Evite detectar Throwable o Exception: esto puede detectar más de lo esperado, incluidos errores que la JVM debería manejar. Sea específico en las excepciones que detecte.
  • Utilice bloques finally o try-with-resources para liberar recursos: siempre que trabaje con recursos que deban cerrarse o liberarse explícitamente (como archivos o conexiones de bases de datos). ), utilice un bloque finally o la construcción try-with-resources para garantizar que estos recursos se liberen incluso si se produce una excepción.
  • Conservar la información de excepción original: si detecta una excepción y genera una nueva, asegúrese de incluir la excepción original como la causa. Esto ayuda a preservar la pila de llamadas original, que es invaluable para diagnosticar problemas.
  • No utilice excepciones para devolver códigos de error: Las excepciones son para situaciones excepcionales, no para devolver códigos de error de método. Utilice valores de retorno o enumeraciones para este propósito.
  • Documente las excepciones generadas por sus métodos: Utilice la etiqueta @throws o @exception en los comentarios de Javadoc para explicar qué excepciones se pueden generar. por un método y bajo qué circunstancias.
  • Considere la posibilidad de crear sus propias clases de excepción: si las excepciones estándar no describen adecuadamente el problema, considere crear sus propias clases de excepción. Esto puede proporcionar más claridad al manejar errores específicos de su aplicación.

Ejemplo de manejo de excepciones


intentar {
    // Código que puede generar una excepción
} captura (excepción específica ex) {
    // Código para manejar la excepción específica
} captura (Otra excepción ex) {
    // Código para manejar otra excepción
} finalmente {
    // Código que se ejecutará después del intento o la captura, independientemente de si se lanzó una excepción o no
}

Además, con la introducción de Java 7, try-with-resources simplifica la liberación de recursos:


intentar (recurso recurso = nuevo recurso ()) {
    // Trabajar con el recurso
} captura (excepción específica ex) {
    // Manejar excepciones que puedan ser lanzadas
}

En resumen, un manejo eficaz de excepciones y una comprensión clara de la jerarquía de excepciones son vitales para escribir código Java confiable y fácil de mantener. Si sigue buenas prácticas y utiliza los recursos lingüísticos de manera adecuada, puede asegurarse de que su aplicación se comporte de manera predecible en situaciones inesperadas.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de las siguientes afirmaciones sobre el manejo de excepciones en Java es correcta?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Trabajar con E/S de archivos en Java

Siguiente página del libro electrónico gratuito:

113Trabajar con E/S de archivos en Java

5 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.