26.    catch (palabra reservada)

Componente sintáctico de sentencias “try”.

Básicamente permite capturar las excepciones lanzadas durante de la ejecución del código dentro del bloque try. De hecho, interrumpe la ejecución secuencial del código y pasa a ejecutarse el bloque catch.

Se pueden acumular varios bloques catch asociados al mismo bloque try. Se prueban en el mismo orden que aparecen. La primera excepción que casa, es la que dispara el código del bloque asociado. Casar significa que la excepción a capturar es igual a o subclase de la excepción reflejada en la cabecera del catch:

class A extends Exception { ... }

class B extends A { ... }

void metodo() throws A, B { ... }

try {

    metodo();

} catch (B b) {

  ... captura excepciones de clase B

} catch (A a) {

  ... captura excepciones de clase A

} catch (Exception e) {

  ... captura otras excepciones

}

try {

    metodo();

} catch (A a) {

  ... captura excepciones de clase A o B

} catch (B b) {

  ... no captura nada

}

 

Si ninguno de los catch presentes puede capturar la excepción, esta salta fuera del bloque try.

Temas relacionados

Vademécum