17.4. Manejo de excepciones y jerarquía de excepciones en Java

El manejo de excepciones es un aspecto fundamental de la programación Java. Una excepción es un evento que ocurre durante la ejecución de un programa y que interrumpe el flujo normal de instrucciones. El mecanismo de excepción en Java proporciona una manera de separar el código de manejo de errores del código normal y permite que un método devuelva información sobre los problemas que ocurren durante la ejecución.

Tipos de excepciones en Java

En Java, las excepciones se dividen en dos categorías principales: excepciones comprobadas y excepciones no comprobadas.

Excepciones marcadas

excepciones marcadas son aquellas que el compilador requiere que sean manejadas o declaradas en el método que las genera. Se utilizan para problemas que el programador debe anticipar y manejar adecuadamente, generalmente son problemas fuera del control del programa, como problemas de E/S (Entrada/Salida), fallas de red, etc. Ejemplos de excepciones marcadas incluyen IOException, SQLException y ClassNotFoundException.

Excepciones no comprobadas

Las

excepciones no marcadas incluyen las subclases de Error y RuntimeException. Estas son excepciones que el compilador no requiere que sean manejadas o declaradas, y generalmente son el resultado de errores en el código mismo, como acceder a un índice fuera de los límites de una matriz (ArrayIndexOutOfBoundsException) o intentar acceder a un objeto a través de una referencia nula (NullPointerException).

Jerarquía de excepciones en Java

La clase base para todas las excepciones en Java es Throwable. De él se derivan dos subclases importantes: Error y Exception. La clase Error está diseñada para situaciones que normalmente no se espera que su programa detecte o maneje, como OutOfMemoryError o StackOverflowError. La clase Exception es la base de todas las excepciones que se pueden manejar y tiene dos categorías principales: excepciones marcadas y excepciones no marcadas, como se mencionó anteriormente.

Manejo de excepciones

El manejo de excepciones en Java se realiza a través de los bloques try, catch y finally. El bloque try contiene el código que puede generar una excepción, mientras que el bloque catch se usa para detectar y manejar la excepción. El bloque finally, que es opcional, contiene código que siempre se ejecuta después del bloque try, independientemente de si se lanzó una excepción o no.

intentar {
    // código que puede generar una excepción
} captura (ExcecaoType1 e) {
    // tratamiento para TypeExcecao1
} captura (ExceptionType2 e) {
    // tratamiento para TypeExcecao2
} finalmente {
    // código que siempre se ejecuta después del bloque try, con o sin excepciones
}

Es posible capturar múltiples excepciones en un solo bloque catch usando el operador de canalización (|). Esto es útil cuando el mismo bloque de código puede generar diferentes excepciones, pero el manejo de todas son iguales.

intentar {
    // código que puede generar diferentes excepciones
} captura (TipoExcecao1 | TipoExcecao2 e) {
    // tratamiento común para TypeExcecao1 y TypeExcecao2
}

Propagación de excepciones

Cuando se lanza una excepción y no se detecta en el mismo método, se propaga hacia la pila de llamadas al método hasta que encuentra un bloque catch que pueda manejarla. Si no se encuentra ningún bloque catch adecuado, el programa finaliza y se imprime la pila de llamadas, lo que ayuda a diagnosticar el problema.

Buenas prácticas en el manejo de excepciones

Cuando se trata de excepciones, es importante seguir algunas buenas prácticas:

  • Maneja únicamente las excepciones que realmente puedas manejar.
  • Evite detectar Throwable, Exception o RuntimeException a menos que sea absolutamente necesario, ya que esto puede detectar excepciones imprevistas y ocultar errores.
  • No utilice excepciones para el control de flujo en su programa.
  • Proporcione mensajes de error útiles y detallados.
  • Limpiar recursos en un bloque finally o utilizar la función de prueba con recursos desde Java 7 en adelante para garantizar que los recursos se cierren automáticamente después de su uso.

El manejo eficaz de excepciones es esencial para crear programas sólidos y confiables. Al comprender los tipos de excepciones, la jerarquía de excepciones y las mejores prácticas, estará bien equipado para enfrentar los desafíos que surgen al programar en Java.

Ahora responde el ejercicio sobre el contenido:

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

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

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Manejo de excepciones y jerarquía de excepciones en Java: Jerarquía de excepciones en Java

Siguiente página del libro electrónico gratuito:

107Manejo de excepciones y jerarquía de excepciones en Java: Jerarquía de excepciones en Java

4 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.