Existen algunos casos en los cuales el código de un método puede generar una Exception y no se
desea incluir en dicho método la gestión del error. Java permite que este método pase o relance
(throws) la Exception al método desde el que ha sido llamado, sin incluir en el método los bucles
try/catch correspondientes. Esto se consigue mediante la adición de throws más el nombre de la
Exception concreta después de la lista de argumentos del método. A su vez el método superior
deberá incluir los bloques try/catch o volver a pasar la Exception. De esta forma se puede ir
pasando la Exception de un método a otro hasta llegar al último método del programa, el método
mainQ.
El ejemplo anterior (metodol) realizaba la gestión de las excepciones dentro del propio
método. Ahora se presenta un nuevo ejemplo (metodol) que relanza las excepciones al siguiente
método:
void metodo2() throws IOException, MyException {
// Código que puede lanzar las excepciones IOException y MyException
} // Fin del metodo2
Según lo anterior, si un método llama a otros métodos que pueden lanzar excepciones (por
ejemplo de un package de Java), tiene 2 posibilidades:
1. Capturar las posibles excepciones y gestionarlas.
2. Desentenderse de las excepciones y remitirlas hacia otro método anterior en el stack para
éste se encargue de gestionarlas.
Si no hace ninguna de las dos cosas anteriores el compilador da un error, salvo que se trate de
una RuntirneException.
No hay comentarios:
Publicar un comentario