La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tratamiento de excepciones

Presentaciones similares


Presentación del tema: "Tratamiento de excepciones"— Transcripción de la presentación:

1 Tratamiento de excepciones
Comparación entre lenguajes OO Java

2 Excepciones en Java Excepciones Excepciones Comprobadas Excepciones
No Comprobadas

3 Tipos de excepciones Comprobadas: Significa que el compilador comprueba que nuestros métodos lanzan solo las excepciones que ellos mismos han declarado que pueden lanzar. No comprobadas: son errores en tiempo de ejecución, son errores lógicos del programa. Ej: error en el índice de un array

4 Jerarquías de clases En java todas las excepciones son subclases de la clase predefinida java.lang.throwable También define otras clases, por ejemplo: Error, Exception y RuntimeException

5 Error: describe los errores internos y el agotamiento de recursos del sistema de soporte de ejecución de java. Exception: representan los errores que pueden manejar los programas. RuntimeException: son excepciones generadas por el sistema de soporte de ejecucion, como resultado de un error en el programa.

6 Jerarquias de clases Throwable definidas por el usuario Error
Exception LinkageError VirtualmachineError RunTimeException

7 Excepciones Comparadas
Todos los tipos de excepciones deben extender de Throwable o una de sus subclases. Por convenio: Los nuevos tipos de excepciones extienden a la clase Exception, que es una subclase de Throwable.

8 Ejemplo public class NoTalAtributosException extends Exception{
public String nombreAtrib; public NoTalAtributoException(String nombre){ super(“el atributo con el nombre “ + nombre + “ no se encuntra”); nombreAtrib = nombre; }

9 La sentencia throw Las excepciones son lanzadas por la sentencia throw. Dicha sentencia evalúa la exprecion, dando como resultado un valor o variable que pueda asignarle a Throwable

10 Ejemplo de throw public void sustituirValor(String nombre, Object nuevoValor) throws NoTalAtributoException{ Atrib atrib = buscar(nombre); if (atrib == null) throw new NoTalAtributoException(nombre); atrib.setValor(nuevoValor); }

11 Transferencia de control
Cuando se lanza una excepcion, se dice que la sentencia o expresión que causa la excepción termina bruscamente. Significa que las acciones que hubiera detrás del punto donde la excepción se produjo no tiene lugar.

12 Manejo de excepciones En java, una excepción solo puede ser manejada desde el interior de un bloque try (intenta) Cada manejador se especifica mediante una sentencia catch (atrapa)

13 La sentencia catch e similar a una declaración de función, cuyo parámetro identifica el tipo de excepción a atrapar En el interior del manejador, el nombre del objeto se comporta como una variable local.

14 Un manejador con parámetros de tipo T atrapara un objeto lanzado de tipo E si:
T y E son el mismo tipo T es una super clase de E en el punto donde se lanza

15 Captura try{ sentencias } catch (exception_tipo1 indentificador1) {
... }finally { }

16 Modo de ejecución del bloque try
El cuerpo de la sentencia se ejecuta hasta que se lance una excepción, o hasta que finalice con éxito En el caso que se lance una excepción, se examinan todas las clausulas catch, hasta que encuentre una que pueda ser asignable al tipo de objeto. Una vez que encuentra una clausula asignable se ejecuta su cuerpo, y ninguna otra clausula.

17 Propagación de excepciones
Este lenguaje soporta la propagación de excepciones, esto significa que si no encuentra ningún manejador de excepción en el contexto de llamada de una función, el contexto se da por terminado y se busca un manejador en un contexto de llamada superior

18 Clausula finally Si la sentencia try contiene una clausula finally, el código que contiene se ejecutara después de que finalice el proceso de dicha sentencia try, esto ocurre independientemente de como finalizo el proceso, ya sea normalmente o mediante una excepción

19 Ejemplo de la clausula finally
public boolean busquedaDe(String archivo, String palabra) throws StreamException { Stream entrada = null; try{ entrada = new Stream(archivo); while (!entrada.eof()) if (entrada.next().equals(palabra)) return true; return false; } finally { if (entrada!=null) entrada.close(); }


Descargar ppt "Tratamiento de excepciones"

Presentaciones similares


Anuncios Google