La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

UNIVERSIDAD LATINA (UNILA)

Presentaciones similares


Presentación del tema: "UNIVERSIDAD LATINA (UNILA)"— Transcripción de la presentación:

1 UNIVERSIDAD LATINA (UNILA)
IV.- EXCEPCIONES LE, EI, Profesor Ramón Castro Liceaga

2 Introducción En algunos lenguajes orientados a objetos, cuando se ejecuta un programa pueden surgir algún evento especial que pueden alterar el desarrollo normal del mismo, por ejemplo cuando el resultado de un calculo falla por una definición numérica incorrecta o tratar de acceder a un arreglo de datos fuera del limite, etc. A este tipo de error se le conoce como excepción y los lenguajes orientados a objetos nos pueden ayudar para resolver estos problemas.

3 Que son las excepciones
El término excepción es un forma corta da la frase “suceso excepcional” y puede definirse de la siguiente forma: Una excepción es un evento que ocurre durante la ejecución del programa que interrumpe el flujo normal de las instrucciones

4 Problemas que pueden causar las excepciones
Muchas clases de errores pueden causar las excepciones, desde serios problemas de hardware, como la avería de un disco duro, a los simples errores de programación, como tratar de acceder a un elemento de un array fuera de sus límites, no poder conectarse a una Base de Datos, etc.

5 Java y las excepciones En Java el manejo de excepciones es automatico
Cuando dicho error ocurre dentro de un método Java, el método crea un objeto ‘exception’ y lo maneja fuera, en el sistema de ejecución. Este objeto contiene información sobre la excepción, incluyendo su tipo y el estado del programa cuando ocurrió el error. El sistema de ejecución es el responsable de buscar algún código para manejar el error.

6 Lanzar una excepción En terminología java, crear una objeto exception y manejarlo por el sistema de ejecución se llama lanzar una excepción. Después de que un método lance una excepción, el sistema de ejecución entra en acción para buscar el manejador de la excepción.

7 Metodos de la pila de excepciones
El conjunto de “algunos” métodos posibles para manejar la excepción es el conjunto de métodos de la pila de llamadas del método donde ocurrió el error. El sistema de ejecución busca hacia atrás en la pila de llamadas, empezando por el método en el que ocurrió el error, hasta que encuentra un método que contiene el “manejador de excepción” adecuado. Un manejador de excepción es considerado adecuado si el tipo de la excepción lanzada es el mismo que el de la excepción manejada por el manejador. Así la excepción sube sobre la pila de llamadas hasta que encuentra el manejador apropiado y una de las llamadas a métodos maneja la excepción, se dice que el manejador de excepción elegido captura la excepción. Si el sistema de ejecución busca exhaustivamente por todos los métodos de la pila de llamadas sin encontrar el manejador de excepción adecuado, el sistema de ejecución finaliza (y consecuentemente y el programa Java también).

8 Ventajas en el manejo de excepciones
Mediante el uso de excepciones para manejar errores, Java tienen las siguientes ventajas frente a las técnicas de manejo de errores tradicionales. Separa el Manejo de Errores del Código “Normal” Propagar los Errores sobre la Pila de Llamadas Agrupar los Tipos de Errores y la Diferenciación de éstos Ventaja 1: Separa el Manejo de Errores del Código “Normal”. En los lenguajes tradicionales se implemanta mas código para el tratamiento de errores y en Java se evita añadir mas código de chequeo en los métodos Ventaja 2: Propaga los Errores sobre la Pila de Llamadas El código de excepciones en Java es independiente, mas fácil de entender y tiene un manejo interno inteligente a través del sistema de pila de llamadas Ventaja 3: Agrupa los Errores y Diferenciación En java las excepciones se dividen en categorias o grupos, clases y subclases y tipos de excepciones.

9 Jerarquía de las Excepciones
Ventaja 1: Separa el Manejo de Errores del Código “Normal”. En los lenguajes tradicionales se implemanta mas código para el tratamiento de errores y en Java se evita añadir mas código de chequeo en los métodos Ventaja 2: Propaga los Errores sobre la Pila de Llamadas El código de excepciones en Java es independiente, mas fácil de entender y tiene un manejo interno inteligente a través del sistema de pila de llamadas Ventaja 3: Agrupa los Errores y Diferenciación En java las excepciones se dividen en categorias o grupos, clases y subclases y tipos de excepciones.

10 Tipos de Excepciones Tenemos tres formas diferentes.
1) La máquina Virtual de Java puede generar una excepción como producto de un error interno que está fuera de su control. Estas excepciones generalmente no pueden ser manejadas por el programa. 2) Excepciones estándar: Son excepciones que deben ser manipuladas, se producen cuando se ejecuta una división por cero o se trata de acceder a un arreglo con un índice fuera de límites son generadas por errores en el código del programa. 3) El programador puede generar una excepción manualmente utilizando la estructura throw. Sin importar cómo se produjo la excepción, se maneja de la misma forma. Ventaja 1: Separa el Manejo de Errores del Código “Normal”. En los lenguajes tradicionales se implemanta mas código para el tratamiento de errores y en Java se evita añadir mas código de chequeo en los métodos Ventaja 2: Propaga los Errores sobre la Pila de Llamadas El código de excepciones en Java es independiente, mas fácil de entender y tiene un manejo interno inteligente a través del sistema de pila de llamadas Ventaja 3: Agrupa los Errores y Diferenciación En java las excepciones se dividen en categorias o grupos, clases y subclases y tipos de excepciones.

11 Manejo de Excepciones Cuando se produce un error en un método, este crea un objeto 'exception' el cual contiene información sobre la excepción como el tipo de excepción y el estado del programa al presentarse el problema. El sistema de ejecución es el responsable de buscar algún bloque de código que maneje la excepción. Al hecho de crear una objeto exception y manejarlo por el sistema de ejecución se le conoce como lanzar una excepción (throwing an exception). Ventaja 1: Separa el Manejo de Errores del Código “Normal”. En los lenguajes tradicionales se implemanta mas código para el tratamiento de errores y en Java se evita añadir mas código de chequeo en los métodos Ventaja 2: Propaga los Errores sobre la Pila de Llamadas El código de excepciones en Java es independiente, mas fácil de entender y tiene un manejo interno inteligente a través del sistema de pila de llamadas Ventaja 3: Agrupa los Errores y Diferenciación En java las excepciones se dividen en categorias o grupos, clases y subclases y tipos de excepciones.

12 Sintaxis en el manejo de excepción en Java
import java.io.IOException; // ... public static void main(String[] args) { try { // Se ejecuta algo que puede producir una excepción } catch (IOException e) { // manejo de una excepción de entrada/salida } catch (Exception e) { // manejo de una excepción cualquiera } finally { // código a ejecutar haya o no excepción } En este ejemplo se muestra una sintaxis try - catch en lenguaje Java que maneja una excepción de entrada/salida

13 Bloque try/catch o try/finally en Java
int valor; try { for( x=0,valor = 100; x < 100; x ++ ) valor /= x; } catch( ArithmeticException e ) { System.out.println( "Matemáticas locas!" ); catch( Exception e ) { System.out.println( "Se ha producido un error" ); } finally { // código a ejecutar haya o no excepción En este ejemplo vemos la estructura del bloque try/catch Try.- Es el bloque de código donde se prevé que se genere una excepción. Catch.- Es el código que se ejecuta cuando se produce la excepción. Finally.- Es el bloque de código que se ejecuta siempre, haya o no excepción.

14 Bloque try/catch Sintaxis
Prueba y verifica la excepción que te genera este código Ventaja 1: Separa el Manejo de Errores del Código “Normal”. En los lenguajes tradicionales se implemanta mas código para el tratamiento de errores y en Java se evita añadir mas código de chequeo en los métodos Ventaja 2: Propaga los Errores sobre la Pila de Llamadas El código de excepciones en Java es independiente, mas fácil de entender y tiene un manejo interno inteligente a través del sistema de pila de llamadas Ventaja 3: Agrupa los Errores y Diferenciación En java las excepciones se dividen en categorias o grupos, clases y subclases y tipos de excepciones. Agrega el código para el manejo de la excepción al mismo programa

15 Excepción producida por un método y atrapada en otro.
Ventaja 1: Separa el Manejo de Errores del Código “Normal”. En los lenguajes tradicionales se implemanta mas código para el tratamiento de errores y en Java se evita añadir mas código de chequeo en los métodos Ventaja 2: Propaga los Errores sobre la Pila de Llamadas El código de excepciones en Java es independiente, mas fácil de entender y tiene un manejo interno inteligente a través del sistema de pila de llamadas Ventaja 3: Agrupa los Errores y Diferenciación En java las excepciones se dividen en categorias o grupos, clases y subclases y tipos de excepciones.

16 Excepción generada y atrapada en un método.
Ventaja 1: Separa el Manejo de Errores del Código “Normal”. En los lenguajes tradicionales se implemanta mas código para el tratamiento de errores y en Java se evita añadir mas código de chequeo en los métodos Ventaja 2: Propaga los Errores sobre la Pila de Llamadas El código de excepciones en Java es independiente, mas fácil de entender y tiene un manejo interno inteligente a través del sistema de pila de llamadas Ventaja 3: Agrupa los Errores y Diferenciación En java las excepciones se dividen en categorias o grupos, clases y subclases y tipos de excepciones.

17 Recuperación de la ejecución después de una excepción..
Ventaja 1: Separa el Manejo de Errores del Código “Normal”. En los lenguajes tradicionales se implemanta mas código para el tratamiento de errores y en Java se evita añadir mas código de chequeo en los métodos Ventaja 2: Propaga los Errores sobre la Pila de Llamadas El código de excepciones en Java es independiente, mas fácil de entender y tiene un manejo interno inteligente a través del sistema de pila de llamadas Ventaja 3: Agrupa los Errores y Diferenciación En java las excepciones se dividen en categorias o grupos, clases y subclases y tipos de excepciones.

18 Catch Múltiples Ventaja 1: Separa el Manejo de Errores del Código “Normal”. En los lenguajes tradicionales se implemanta mas código para el tratamiento de errores y en Java se evita añadir mas código de chequeo en los métodos Ventaja 2: Propaga los Errores sobre la Pila de Llamadas El código de excepciones en Java es independiente, mas fácil de entender y tiene un manejo interno inteligente a través del sistema de pila de llamadas Ventaja 3: Agrupa los Errores y Diferenciación En java las excepciones se dividen en categorias o grupos, clases y subclases y tipos de excepciones.

19 Manejo de excepciones generales y específicas
Ventaja 1: Separa el Manejo de Errores del Código “Normal”. En los lenguajes tradicionales se implemanta mas código para el tratamiento de errores y en Java se evita añadir mas código de chequeo en los métodos Ventaja 2: Propaga los Errores sobre la Pila de Llamadas El código de excepciones en Java es independiente, mas fácil de entender y tiene un manejo interno inteligente a través del sistema de pila de llamadas Ventaja 3: Agrupa los Errores y Diferenciación En java las excepciones se dividen en categorias o grupos, clases y subclases y tipos de excepciones.

20 Bloques try anidados Ventaja 1: Separa el Manejo de Errores del Código “Normal”. En los lenguajes tradicionales se implemanta mas código para el tratamiento de errores y en Java se evita añadir mas código de chequeo en los métodos Ventaja 2: Propaga los Errores sobre la Pila de Llamadas El código de excepciones en Java es independiente, mas fácil de entender y tiene un manejo interno inteligente a través del sistema de pila de llamadas Ventaja 3: Agrupa los Errores y Diferenciación En java las excepciones se dividen en categorias o grupos, clases y subclases y tipos de excepciones.

21 Finally Ventaja 1: Separa el Manejo de Errores del Código “Normal”.
En los lenguajes tradicionales se implemanta mas código para el tratamiento de errores y en Java se evita añadir mas código de chequeo en los métodos Ventaja 2: Propaga los Errores sobre la Pila de Llamadas El código de excepciones en Java es independiente, mas fácil de entender y tiene un manejo interno inteligente a través del sistema de pila de llamadas Ventaja 3: Agrupa los Errores y Diferenciación En java las excepciones se dividen en categorias o grupos, clases y subclases y tipos de excepciones.

22 Throws Ventaja 1: Separa el Manejo de Errores del Código “Normal”.
En los lenguajes tradicionales se implemanta mas código para el tratamiento de errores y en Java se evita añadir mas código de chequeo en los métodos Ventaja 2: Propaga los Errores sobre la Pila de Llamadas El código de excepciones en Java es independiente, mas fácil de entender y tiene un manejo interno inteligente a través del sistema de pila de llamadas Ventaja 3: Agrupa los Errores y Diferenciación En java las excepciones se dividen en categorias o grupos, clases y subclases y tipos de excepciones.

23 Conclusión Existen diferentes sintaxis para el manejo de excepciones, en el caso de Java la sintaxis básica es el bloque try/catch o try/finally.


Descargar ppt "UNIVERSIDAD LATINA (UNILA)"

Presentaciones similares


Anuncios Google