Cuando en un método se produce una situación anómala es necesario lanzar una excepción. El
proceso de lanzamiento de una excepción es el siguiente:
1. Se crea un objeto Exception de la clase adecuada.
2. Se lanza la excepción con la sentencia throw seguida del objeto Exception creado.
// Código que lanza la excepción MyException
una vez detectado el error MyException me = new MyException("MyException message"); throw me;
Esta excepción deberá ser capturada (catch) y gestionada en el propio método o en algún otro
lugar del programa (en otro método anterior en la pila o stack de llamadas), según se explica en el
Apartado 8.3.
Al lanzar una excepción el método termina de inmediato, sin devolver ningún valor.
Solamente en el caso de que el método incluya los bloques try/catch/finally se ejecutará el bloque
catch que la captura o el bloque finally (si existe).
Todo método en el que se puede producir uno o más tipos de excepciones (y que no utiliza
directamente los bloques try/catch/finally para tratarlos) debe declararlas en el encabezamiento de
la función por medio de la palabra throws. Si un método puede lanzar varias excepciones, se ponen
detrás de throws separadas por comas, como por ejemplo:
public void leerFichero(String fich) throws EOFException, FileNotFoundException {...}
Se puede poner únicamente una superclase de excepciones para indicar que se pueden lanzar
excepciones de cualquiera de sus clases derivadas.
El caso anterior sería equivalente a:
public void leerFichero(String fich) throws IOException {...}
Las excepciones pueden ser lanzadas dilectamente por leerFichero() o por alguno de los
métodos llamados por leerFicherof). ya que las clases EOFException y FileNotFoundException
derivan de IOException.
Se recuerda que no hace falta avisar de que se pueden lanzar objetos de la clases Error o
RuntimeException (excepciones implícitas).
No hay comentarios:
Publicar un comentario