domingo, 11 de mayo de 2014

LANZAR UNA EXCEPTION

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