Manejo de Excepciones

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 12

Universidad tecnológica de panamá

Desarrollo de software II

Tema
Manejo de excepciones y captura de errores

Integrantes:
Eric Henríquez
Francisco pinzon

Fecha de entrega :11/10/16


Introducción
El manejo de excepciones permite a los programadores crear programas robustos
y tolerantes a fallas, que lanzan o manejan las excepciones. En muchos casos el
manejo de una excepción, permite que el programa continúe su ejecución como si
no se hubiera encontrado el problema. Los errores relacionados con errores de
compilación, del sistema o de la JVM, son irrecuperables y no dependen del
programador ni debe preocuparse de capturarlos y tratarlos. El manejo de
excepciones está diseñado para procesar errores que ocurren cuando se ejecuta
una instrucción. Las excepciones en tiempo de ejecución ocurren cuando el
programador no ha tenido cuidado al escribir su código.

Estos son errores que en realidad tienen un fin especial que es poder solucionar
todos los problemas de ejecución al momento de poder programar aquí el
contenido que ha de poder explicar.
Manejo de excepciones
Es un evento que ocurre durante la ejecución de un programa que rompe el flujo
normal de ejecución. Cuando se habla de excepciones nos referimos a un evento
excepcional.
Uso
Cuando se produce una excepción dentro de un método, se crea un objeto que
contiene información sobre la excepción y retorna en forma inusual al código
llamador con la información de la excepción.
La rutina receptora de la excepción es responsable de reaccionar a tal evento
inesperado. Cuando creamos un objeto para la excepción y lo pasamos al código
llamador decimos que lanzamos una excepción (Throw an exception)
Si el método llamador no tiene un manejador de la excepción se busca hacia
atrás en la pila de llamados anidados hasta encontrarlo. Decimos que el
manejador atrapa la excepción (palabra reservada “catch”)

Algunos ejemplos de errores y situaciones excepcionales son:

*Leer un fichero que no existe


*Acceder al valor N de una colección que contiene menos de N elementos
*Enviar/recibir información por red mientras se produce una pérdida de
conectividad
Cada excepción es una instancia de una clase que tiene a la clase Exception
dentro de su jerarquía de herencia. Es decir, las excepciones son siempre
subclases de la clase java.lang.Exception.
Ejemplos de excepciones

Por formato:
String str=" 12 ";
int numero=Integer.parseInt(str);

Si se introducen caracteres no numéricos, o no se quitan los espacios en blanco al


principio y al final del string, se lanza una excepción: NumberFormatException.

El mensaje que aparece en la ventana nos indica:

El tipo de excepción: NumberFormatException, La función que la ha lanzado:


Integer.parseInt() que se llama dentro de main (por ejemplo)

Entrada/salida
En otras situaciones el mensaje de error aparece en el momento en el que se
compila el programa. Así, cuando intentamos leer un carácter del teclado,
llamamos a la función

System.in.read();
Cuando compilamos el programa, nos aparece un mensaje de error que no nos
deja proseguir.

unreported exception: java.io.IOException; must be caught or declared to be


thrown
EL SISTEMA DE GESTIÓN DE EXCEPCIONES

El control de flujo de un programa Java sabemos hasta ahora que se lleva a cabo
con sentencias del tipo if, while, for, return, break, etc… Estas sentencias forman
un conjunto de palabras reservadas que determinan cierta funcionalidad. Pues
bien, ninguna de ellas tiene en cuenta que se puedan producir errores en tiempo
de ejecución de un programa y por tanto Java necesita de un conjunto de palabras
nuevas para tener en cuenta que cualquier código puede fallar o ser mal
interpretado en tiempo de ejecución.

tres de las palabras reservadas para tratamiento de excepciones:

- Try.

- Catch.

- Finally.

De forma introductoria hay dos formas de tratar errores en Java: capturarlos o


lanzarlos. El uso de try – catch – finally corresponde a la captura de errores. un
símil sencillo: un error es algo inesperado, como encontrarte un ladrón dentro de
tu casa. Cuando nos encontramos con un error podemos capturarlo (equivaldría a
capturar el ladrón) o lanzarlo (equivaldría a tratar de hacer huir al ladrón, de hacer
que salga fuera del lugar donde se encuentra).

BLOQUE TRY

Try en inglés es el verbo intentar, así que todo el código que vaya dentro de esta
sentencia será el código sobre el que se intentará capturar el error si se produce y
una vez capturado hacer algo con él. Lo ideal es que no ocurra un error, pero en
caso de que ocurra un bloque try nos permite estar preparados para capturarlo y
tratarlo. Así un ejemplo sería:

try {
     System.out.println(“bloque de código donde pudiera saltar un error
es este”);
       }

 BLOQUE CATCH

En este bloque definimos el conjunto de instrucciones necesarias o de tratamiento


del problema capturado con el bloque try anterior. Es decir, cuando se produce un
error o excepción en el código que se encuentra dentro de un bloque try, pasamos
directamente a ejecutar el conjunto de sentencias que tengamos en el bloque
catch. Esto no es exactamente así pero ya explicaremos más adelante todo el
funcionamiento. De momento para una mejor comprensión vamos a considerar
que esto es así.

catch (Exception e) {
     System.out.println(“bloque de código donde se trata el problema”);
}

 Fíjate que después de catch hemos puesto unos paréntesis donde pone
“Exception e”. Esto significa que cuando se produce un error Java genera un
objeto de tipo Exception con la información sobre el error y este objeto se envía al
bloque catch.

 BLOQUE FINALLY

Y para finalizar tenemos el bloque finally que es un bloque donde podremos definir
un conjunto de instrucciones necesarias tanto si se produce error o excepción
como si no y que por tanto se ejecuta siempre.

finally {
     System.out.println(“bloque de código ejecutado siempre”);
}

EJEMPLO SIN ERROR

A continuación, vamos a ver cómo se comporta un programa con tratamiento de


errores, pero donde no se produce ningún error..

/* Ejemplo Gestión de Excepciones Java aprenderaprogramar.com */


public class Programa {
    public static void main (String [] args)     {
        try{
            System.out.println("Intentamos ejecutar el bloque de instrucciones:");
            System.out.println("Instrucción 1.");             System.out.println("Instrucción 2.");
            System.out.println("Instrucción 3, etc.");
        }
        catch (Exception e) { System.out.println("Instrucciones a ejecutar cuando se produce un
error");  }
       finally{ System.out.println("Instrucciones a ejecutar finalmente tanto si se producen errores
como si no."); }
    }
}

 La salida obtenida tras ejecutar el programa anterior es:


Como podemos observar, se han ejecutado todas las instrucciones del bloque try
y finalmente se ejecutó la instrucción del bloque finally. No se ejecuta el bloque
catch porque no hubo error.

EJEMPLO CON ERROR

A continuación, vamos a ver cómo se comporta un programa con tratamiento de


errores cuando se produce un error y cómo afecta al control de flujo del programa.
Escribe este código en tu editor.

/* Ejemplo Gestión de Excepciones Java aprenderaprogramar.com */


public class Programa {
    public static void main (String [] args)     {
        try {
            System.out.println("Intentamos ejecutar el bloque de instrucciones:");
            System.out.println("Instrucción 1.");
            int n = Integer.parseInt("M"); //error forzado en tiempo de ejecución.
            System.out.println("Instrucción 2.");
            System.out.println("Instrucción 3, etc.");
        }
        catch (Exception e) {
            System.out.println("Instrucciones a ejecutar cuando se produce un error");
        }
        finally {
            System.out.println("Instrucciones a ejecutar finalmente tanto si se producen errores como si
no.");
        }
    }
}

 Se produce un error porque el método parseInt de la clase Integer espera que
dentro de las comillas llegue un número y no una letra. Por ejemplo int n =
Integer.parseInt("65"); sirve para transformar el String 65 en un int de valor 65. Al
no encontrar un valor válido se produce un error de tipo
java.lang.NumberFormatException.

La salida obtenida en este caso donde se produce error es:

Prueba a escribir dentro del bloque catch lo siguiente: System.out.println("Se ha


producido un error " + e ); Trata de interpretar lo que se visualiza en pantalla.

Se puede observar, las instrucciones del bloque try que no dan errores, pero
cuando en una instrucción se produce un error o excepción inesperada se deja de
ejecutar el código del bloque try, y pasa a ejecutar el código del bloque catch. Hay
un salto o cambio en el flujo del programa. Finalmente se ejecutan, en todo caso,
las instrucciones del bloque finally. El bloque finally no es obligatorio, es decir,
puede existir un bloque try catch y no existir bloque finally.
 

CONCLUSIONES

Los errores en Java se pueden capturar o lanzar. La captura se realiza con


bloques try catch, donde por un lado tenemos el código para el caso de flujo sin
problemas del programa y por otro el código con instrucciones para el tratamiento
de errores.

Las excepciones son de importancia para poder recuperar o aclarar los errores
que el programador ocasiones por eso se realizó este trabajo con el fin de poder
comprender estos errores.
Referencias bibliográficas

David marco (Tratamiento de excepciones en Java) Lunes, 16 de Julio de 2012.


Disponible en: http://www.davidmarco.es/articulo/tratamiento-de-excepciones-en-
java

(Sin nombre de autor) Se encuentra en: http://i7exe.blogspot.com/2013/10/que-es-


una-excepcion-o-evento.html

Agustín J. González (manejo de excepciones) disponible en:


http://profesores.elo.utfsm.cl/~agv/elo329/1s09/lectures/JavaExceptions.pdf
Gestión de excepciones en Java. Captura con bloques try catch finally. Ejemplos
resueltos sencillos (CU00927C). Escrito por Manuel Sierra
(http://aprenderaprogramar.es/index.php?
option=com_content&view=article&id=678:gestion-de-excepciones-en-java-
captura-con-bloques-try-catch-finally-ejemplos-resueltos-sencillos-
cu00927c&catid=58:curso-lenguaje-programacion-java-nivel-avanzado-
i&Itemid=180 )
Universidad de Carabobo. Facultad de Ingeniería. Departamento de Computación.
Computación Avanzada. 1-2006.
(http://dptocomp.ing.uc.edu.ve/compAvanzada/lecturas/Excepciones.pdf )

También podría gustarte