Logo Grupo Codesi

Capturar Excepciones Java

Cómo Capturar Excepciones Java correctamente

capturar excepciones en Java

Nuevamente por petición de los lectores de este portal y que desean volverse más expertos en el tema de capturar excepciones en java de manera correcta escribimos nuevamente.
Como ya se ha visto, ciertos métodos de los packages de Java y algunos métodos creados por cualquier programador producen excepciones. Si el usuario llama a estos métodos sin tenerlo en cuenta se produce un error de compilación con un mensaje del tipo: “… Exception java.io.IOException must be caugth or it must be declared in the throws clause of this method”. El programa no compilará mientras el usuario no haga una de estas dos cosas:

  1. Gestionar la excepción con una construcción del tipo try {…} catch {…}.
  2. Re-lanzar la excepción hacia un método anterior en el stack, declarando que su método también lanza dicha excepción, utilizando para ello la construcción throws en el header del método.
  3. capturar excepciones en java

El compilador obliga a capturar las llamadas excepciones explícitas, pero no protesta si se captura y luego no se hace nada con ella. En general, es conveniente por lo menos imprimir un mensaje indicando qué tipo de excepción se ha producido. Para el manejo de las excepciones dejamos este curso de java presencial y 100% práctico donde podrás aprender a crearlas.

manejo de errores java

try y catch

Otro punto son los Bloques try y catch de los casos de excepciones que no pertenecen a las RuntimeException y que por lo tanto Java obliga a tenerlas en cuenta habrá que utilizar los bloques try, catch y finally. El código dentro del bloque try está “vigilado”: Si se produce una situación anormal y se lanza por lo tanto una excepción el control salta o sale del bloque try y pasa al bloque catch, que se hace cargo de la situación y decide lo que hay que hacer. Se pueden incluir tantos bloques catch como sean necesarios, cada uno de los cuales tratará un tipo de excepción. Las excepciones se pueden capturar individualmente o en grupo, por medio de una superclase de la que deriven todas ellas.

capturar errores con excepciones java

Bloque finally

El bloque finally es opcional. Si se incluye sus sentencias se ejecutan siempre, sea cual sea la excepción que se produzca o si no se produce ninguna. El bloque finally se ejecuta aunque en el bloque try haya un return. En el siguiente ejemplo se presenta un método que debe "controlar" una IOException relacionada con la lectura ficheros y una MyException propia:
void metodo1(){
...
try {
// Código que puede lanzar las excepciones IOException y MyException
} catch (IOException e1) {// Se ocupa de IOException simplemente dando aviso
System.out.println(e1.getMessage());
} catch (MyException e2) {
// Se ocupa de MyException dando un aviso y finalizando la función
System.out.println(e2.getMessage()); return;
} finally { // Sentencias que se ejecutarán en cualquier caso
...
}
...
}

manejo de errores con try y catch

Relanzar Excepciones

Un punto importante es Relanzar una Excepcion, para esto existen algunos casos en los cuales el código de un método puede generar una Exception y no se desea incluir en dicho método la gestión del error. Java permite que este método pase o relance (throws) la Exception al método desde el que ha sido llamado, sin incluir en el método los bucles try/catch correspondientes. Esto se consigue mediante la adición de throws más el nombre de la Exception concreta después de la lista de argumentos del método. A su vez el método superior deberá incluir los bloques try/catch o volver a pasar la Exception. De esta forma se puede ir pasando la Exception de un método a otro hasta llegar al último método del programa, el método main(). Para tener buenas bases sobre las clases, métodos y excepciones indispensables en java dejamos este curso de java donde podrás aprender y utilizar estos y otros elementos.

Articulos Relacionados a la tecnología Java

Seguridad de Java Java para Android Applets Java Juegos en Java Web Services Java Servidor Java Java 8 Fundamentos de Java 8 Entrada y Salida de datos en Java
Diplomado Java

Diseño de paginas Web Grupo Codesi