Sunteți pe pagina 1din 5

Manejo de

Excepciones

Taller de
Algoritmos y
Estructuras
de Datos I

1
Manejo de excepciones
Las Excepciones son el mecanismo que utiliza la Java Virtual Machine
para el manejo de errores leves que pueden llegar a producirse durante
la ejecución de una aplicación y detener la ejecución del mismo.

Las excepciones se crean en el momento en que se produce una


situación anormal o excepcional en tiempo de ejecución, como por
ejemplo, utilización de una referencia con valor null, intento de
apertura de un archivo que no existe, entre otras.

Para hacer más organizado e informativo el manejo de errores, la


especificación Java provee un conjunto de excepciones que es lanzado
de acuerdo al tipo de error. Por ejemplo, el uso de referencias nulas
utiliza NullPointerException; las operaciones de I/O utilizan
IOException, así sucesivamente.

Throwable

Error Exception

RuntimeException IOException AWTException ...

NullPointerException EOFException

IndexOutOfBoundsException FileNotFoundException

NegativeArraySizeException MalformedURLException

... ...

También es posible la definición de nuevas excepciones, las cuales


deben heredar de Excpetion o de alguna de sus subclases.

El lenguaje Java provee de la sintaxis necesaria para el control de


excepciones dentro de un programa. Los operadores son

try: observa el comportamiento de un determinado bloque de código


que es susceptible de arrojar excepciones

catch: en caso de que el bloque observado por try arroje una


excepción, catch captura el error permitiendo algún tipo de
procesamiento del mismo, y poder tomar de esta forma un curso
correctivo

finally: bloque de sentencias que se ejecutan siempre que exista el


bloque try, aunque este no arroje excepción. Generalmente se lo utiliza
para liberar recursos, como conexiones de bases de datos o cierre de
archivos abiertos.

throw: fuerza el lanzamiento de una excepción.


throws: informa que determinado método puede arrojar algún tipo de
excepción
Veamos el siguiente ejemplo:

 Se crea una nueva Excepción

public class PersonaException extends Exception{


public PersonaException(String msg){
super(msg);
}
}

 Se crea la clase Persona

public class Persona{


private Integer id;

public Persona(){
}

publicvoid setId(Integer id){


this.id=id;
}
//se marca el código que puede lanzar una excepción
public Integer getId() throws PersonaException{
if(this.id==null){
thrownew PersonaException("ID nulo");
}
returnthis.id;
}
}
 Se crea la clase Test y marca el bloque de código
con try y catch()

public class Test{

public static void main(String [] args){


try{
Persona p=new Persona();
if(args.length > 0 &&args[0] != null && args[0] != ""){
p.setId(Integer.valueOf(args[0]));
}
System.out.println("ID de la persona: " + p.getId());
}
catch(Exception e){
System.out.println(e.getMessage());
}
finally{
System.out.println("Cerrando programa");
}
System.exit(0);
}
}

La clase PersonaException es un tipo de excepción personalizado


que creamos para manejar los posibles errores que se producen en
torno a la clase Persona

En la clase Persona, el método getId() arroja PersonaException en


caso de que el id sea nulo. Vemos como al final de la declaración se
utiliza throws para informar que el método puede arrojar excepción.
También vemos que si la evaluación del if es verdadera, se fuerza el
retorno de PersonaException mediante throw.

En la clase Test, el código susceptible de excepciones se evalúa dentro


del bloque try. En caso de producirse la excepción, se ejecuta el bloque
catch. En todos los casos, se va a ejecutar el bloque de código de finally.

Para probar el programa, desde línea de comandos, ejecutamos los


siguientes pasos:

* ingresar a la carpeta donde se encuentran los archivos .java

* compilar con javac Persona.java PersonaException.java

*Test.java Para probar con excepción, ejecutar con java Test

Para probar sin excepción, agregar un parámetro del tipo int a la línea
anterior: java Test 1
Referencia Bibliográfica
Mark Allen Weiss, “Estructuras de Datos en Java”, ed. Addison Wesley.

Deitel y Deitel, “Java cómo programar ”, séptima edición, ed. Pearson, 2008.

Pressman Roger, (2006), “Ingeniería de Software. Un enfoque práctico” 6ta.


edición, Ed. McGraw Hill

ORACLE, Oracle 10g: Programación Java, Guía del Alumno, 2003

S-ar putea să vă placă și