miércoles, 15 de abril de 2009

Excepciones y Errores en JAVA

En el leguaje de Java algunos programas pueden tener estados anormales que nos impiden ejecutar de la forma en que se habia pensado al diseñarlo. Java ante estas fallas tiene un recurso que le ayuda funcionar mejor ante fallas.

Las execepciones son estados anormales de ejecucion que son modelados a traves de un objeto llamado java.lang.Exception que es instanciado al producirse el estado anormal. La excepcion permite tener una reaccion ante la falla de forma que el programa no aborte.

La clase java.lang.Exception viene heredada de java.lang.Throwable. Existe también otra clase llamada java.lang.Error que eventualmente no debería dispararse nunca pues representa un error irrecuperable. El árbol de herencia es el siguiente:

java.lang.Throwable

+---- java.lang.Error
+---- java.lang.Exception
+---- java.lang.RuntimeException
+---- ... various checked exceptions

- El código en el bloque final siempre es ejecutado

- Un metodo que sobreescribe no puede enviar una excepcion (cheked) a menos que el método sobreescrito lance esa excepción o una superclase de esa excepción.

class bingo{
void bonzo() throws java.io.IOException{
}
}
public class test1 extends bingo{
public void bonzo() throws java.net.MalformedURLException{ // OK!
}
}

//////////////////

class bingo{
void bonzo() throws java.net.MalformedURLException{
}
}
public class test1 extends bingo{
public void bonzo() throws java.io.IOException{ // NOT ok!
}
}

//////////////////

class bingo{
void bonzo() throws java.net.MalformedURLException{
}
}
public class test1 extends bingo{
public void bonzo(){ // OK!

}
}

OTRO EJEMPLO:

public boolean readTest( String x ) throws IOException

- (de nuevo) el compilador permitirá que la clase que sobreescribe:

* lance IOException, o

* una o más subclases de IOException o

* NO LANZAR NINGUNA EXCEPción

2 comentarios:

  1. Tu puedes atrapar o lanzar la excepción dependiendo de lo que quieras como resultado.

    ResponderEliminar
  2. es bastante importante utilizarlas asi se obliga al programa a ejecutar o ejecutar
    recomiento usar try y catch para menejarlas

    ResponderEliminar