martes, 15 de febrero de 2011

C3, 11/02/11: Bloque I.7: Excepciones

  • Introducción

  • Las excepciones son situaciones anómalas que se producen durante la ejecución, como por ejemplo acceder a una posición de un vector inexistente.


    En algunos casos el error no se podrá gestionar, por ejemplo los producidos por la JVM, y en otros casos sí.


    Java proporciona un mecanismo para resolver este tipo de situaciones, y en el caso en que sea necesario establecer algún tipo de respuesta ante ellas. No podremos compilar el código a menos que lo hagamos, o indiquemos explícitamente que lo queremos hacer.




  1. Qué es una excepción

  2. Tipos de excepciones

  3. Cómo se gestiona una exepción


  4. try {
    readFromFile("esteFicheroNoExiste");
    }
    catch(FileNotFoundException e) {
    //Aquí tratamos esta excepción
    }
    catch(IOException e) {
    //Aquí tratamos esta otra
    }
    finally {
    //Aquí realizamos las tareas comunes.
    }


    void metodoLanzador() throws IOException { // "throws IOException" indica que hay excepciones que no se van a gestionar
    //...
    }

  5. Creación de excepciones propias


  6. public class MiExcepcion extends Exception {
    public MiExcepcion() {
    super("Texto de la excepcion");
    }
    }

    public class LanzaExcepcion {
    public void metodo() throws MiExcepcion { //Indica la posible excepción
    if(a < b) throw new MiExcepcion(); //Lanza la excepción
    }
    }


    public class OtraClase {
    public void metodo() {
    LanzaExcepcion le = new LanzaExcepcion();
    try {
    le.metodo();
    }
    catch (MiExcepcion e) {
    System.err.println(e.getMessage());
    }
    }
    }
    //Se atrapa como cualquier otra excepción. try/catch


  • Resumen

  • Las excepciones son el mecanismo de detección de errores en tiempo de ejecución en Java.


    Existen varios tipos de excepciones, los Error son
    excepciones irrecuperables. Las RunTimeException son excepciones que no es necesario atrapar.


    El resto de excepciones es necesario atraparlas y
    gestionarlas, o indicar explícitamente que no se van a atrapar con el uso de throws.



No hay comentarios:

Publicar un comentario