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

El manejo de excepciones es uno de los pilares fundamentales para crear programas robustos y confiables en Java. Una excepción es un evento que ocurre durante la ejecución de un programa y que interrumpe el flujo normal de instrucciones. Java utiliza un modelo de manejo de excepciones que permite a los desarrolladores administrar estos eventos anormales de una manera controlada y elegante.

¿Qué son las excepciones?

Las excepciones son problemas que surgen durante la ejecución de un programa, como intentos de acceder a un índice de matriz que no existe, operaciones matemáticas no válidas o intentos de leer archivos que no se pueden encontrar. En Java, las excepciones son objetos que representan estas condiciones de error.

Jerarquía de excepciones en Java

Las excepciones en Java están organizadas en una jerarquía de clases. En la parte superior de esta jerarquía está la clase Throwable, que se subdivide en dos subclases: Error y Exception. La clase Error se utiliza para condiciones graves que una aplicación normal no debería intentar detectar, como OutOfMemoryError. Por otro lado, la clase Exception está destinada a situaciones que la aplicación puede querer detectar y manejar.

La clase Exception tiene dos categorías principales: excepciones marcadas (excepciones marcadas) y excepciones no marcadas (excepciones no marcadas). Las excepciones marcadas son aquellas que el compilador requiere que se manejen o declaren en el método que las genera. Las excepciones no marcadas, que incluyen RuntimeException y sus subclases, no necesitan ser declaradas ni manejadas y generalmente indican errores de programación como NullPointerException o IndexOutOfBoundsException.

Manejo de excepciones

Para manejar excepciones en Java, utilizamos los bloques try, catch y finally. El bloque try contiene código que puede generar excepciones, mientras que el bloque catch se usa para detectar y manejar estas excepciones. El bloque finally, que es opcional, contiene código que se ejecuta independientemente de si se produce una excepción o no, generalmente para liberar recursos.


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 se ejecutará después del try o catch
}

Es posible detectar múltiples excepciones en un único bloque catch a partir de Java 7, utilizando el operador de canalización (|).


intentar {
    // Código que puede generar excepciones
} captura (TipoExcecao1 | TipoExcecao2 e) {
    // Manejando ambas excepciones
}

Lanzar excepciones

Además de manejar excepciones, los desarrolladores también pueden generar excepciones usando la palabra clave throw. Esto es útil para indicar que un método no puede completar su ejecución normalmente.


public void fazAlgo() lanza MinhaExcecao {
    si (alguna condición de error) {
        lanzar nuevo MyExcecao("Mensaje de error");
    }
}

Cuando un método puede generar una excepción marcada, debe declararla usando la palabra clave throws en la firma del método.

Excepciones personalizadas

Los desarrolladores pueden crear sus propias excepciones extendiendo la clase Exception o cualquiera de sus subclases. Esto es útil cuando desea representar condiciones de error específicas de un dominio de aplicación.


la clase pública MinhaExcecao extiende la excepción {
    público MinhaExcecao (mensaje de cadena) {
        super(mensaje);
    }
}

Buenas prácticas en el manejo de excepciones

Al gestionar excepciones, es importante seguir algunas buenas prácticas:

  • Capture sólo las excepciones que puedan manejarse de manera significativa.
  • Evite el uso excesivo de bloques try-catch; esto puede hacer que el código sea difícil de leer y mantener.
  • No detecte Throwable, Error o RuntimeException sin una buena razón.
  • Utilice excepciones personalizadas para hacer que el código sea más comprensible y fácil de mantener.
  • Excepciones de documentos lanzadas por métodos que utilizan la etiqueta @throws en los comentarios de Javadoc.

En resumen, el manejo de excepciones en Java es una herramienta poderosa que, cuando se usa correctamente, le permite crear programas más robustos y confiables. Comprender la jerarquía de excepciones y saber cómo detectar, generar y crear excepciones personalizadas son habilidades esenciales para cualquier desarrollador de Java.

Ahora responde el ejercicio sobre el contenido:

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

¡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: Introducción al manejo de excepciones

Siguiente página del libro electrónico gratuito:

103Manejo de excepciones y jerarquía de excepciones en Java: Introducción al manejo de excepciones

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.