La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.

Presentaciones similares


Presentación del tema: ":: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación."— Transcripción de la presentación:

1 :: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación

2 Gestión de Errores en Java  Utiliza las excepciones java.  Una excepción es una condición anormal que se produce en una porción de código durante su ejecución. Es decir, es un evento que interrumpe el flujo normal de instrucciones durante la ejecución de un programa. Programación I

3 Gestión de Errores en Java  Las aplicaciones pueden producir muchas clases de errores de diversos niveles de seguridad: Un archivo que no puede encontrarse o que no existe. Un índice fuera de rango. Un enlace fuera de red que falla. Un fallo en un disco duro. Programación I

4 La existencia de las excepciones permite:  Encapsular en clases los errores.  Separar el flujo de ejecución normal del tratamiento de errores. Gestión de Errores en Java Las excepciones se pueden: o tratar o re-lanzar para que sean tratadas por otro método del stack. Programación I

5 Gestión de Errores en Java  Consideremos el pseudo-código del siguiente método que lee un archivo y copia su contenido en memoria. leerArchivo{ abrir el archivo; determinar la longitud del archivo; reservar la memoria suficiente; copiar el archivo en memoria; cerrar el archivo; } Programación I ¿Qué pasa si el archivo no puede abrirse? ¿Qué pasa si no puede reservarse memoria suficiente? ¿Qué pasa si falla la lectura? ¿Qué pasa si el archivo no puede cerrarse? Necesidad de Tratar Errores

6 Gestión de Errores en Java  Cuando ocurre un error en un método, éste crea un objeto exception y lo entrega al sistema de ejecución (lanza una excepción).  Este objeto contiene información sobre el error, incluido su tipo y el estado del programa donde ocurrió.  El sistema de ejecución recorre la pila de llamadas buscando un método que contenga un bloque de código que maneje la exception (manejador de excepción) Programación I Una Excepción:

7 Gestión de Errores en Java Método donde ocurre el error. Método sin manejador de la exception Método con manejador de la exception main Llamadas a métodos Búsqueda del manejador apropiado Programación I Método donde ocurre el error.

8 Gestión de Errores en Java  Se manejan mediante bloques try & catch try { //código susceptible de lanzar una exception } catch (tipo_exception e) { //código de tratamiento de la exception } catch (tipo_exception e) { //código de tratamiento de la exception } finally { //código que se ejecuta siempre } Programación I Manejo de Excepciones:

9 try:  Es el bloque de código donde se prevé que se genere una excepción.  El bloque try tiene que ir seguido, al menos, por una cláusula catch o una cláusula finally. Programación I Gestión de Errores en Java catch:  Es el código que se ejecuta cuando se produce la excepción. Es como si dijésemos "controlo cualquier excepción que coincida con mi argumento".  En este bloque tendremos que asegurarnos de colocar código que no genere excepciones.

10 catch:  Se pueden colocar sentencias catch sucesivas, cada una controlando una excepción diferente. No debería intentarse capturar todas las excepciones con una sola cláusula, como esta: catch( Excepcion e ) {...  Esto representaría un uso demasiado general, podrían llegar muchas más excepciones de las esperadas. En este caso es mejor dejar que la excepción se propague hacia arriba y dar un mensaje de error al usuario. Programación I Gestión de Errores en Java

11 finally: Programación I Gestión de Errores en Java  El bloque finally sirve para colocar en él instrucciones que se desea que se realicen siempre que se sale de un bloque try.  Es opcional, pero pasa a ser obligatorio cuando el bloque try no va seguido por ninguna cláusula catch.  Su función es la de dejar el programa en un estado correcto independientemente de lo que suceda dentro del bloque try (cerrar archivos, liberar recursos,…)

12 Gestión de Errores en Java public void escribirLista{ PrintWriter out = null; try { out = new PrintWriter(new FileWriter(“out.txt”)); for (int i=0; i<SIZE; i++) { out.println(“valor: ” + i + “ = ” + v[i]); } catch (ArrayIndexOutOfBoundsException e) { System.err.println(“Indice fuera de rango”); } catch (IOException e) { System.err.println(“out.txt no puede ser abierto”); } finally { if (out != null) { out.close(); } } Programación I Tratamiento de las Excepciones:

13 Gestión de Errores en Java  El bloque try puede terminar de cualquiera de las siguientes tres formas: Programación I La instrucción new FileWriter(“out.txt”) falla y lanza una excepción IOException. La instrucción v[i] falla y lanza una excepción ArrayIndexOutOfBoundsException Todo va bien y el bloque try termina normalmente. Tratamiento de las Excepciones:

14  Un método indica que puede lanzar o (relanzar) una excepción mediante la palabra throws.  Un método crea y lanza una excepción mediante la palabra throw. Programación I Gestión de Errores en Java public class FileInputStream extends InputStream { public FileInputStream (File aFile) throws IOException { if (…..) { throw new IOException (“No existe el archivo”); } Lanzamiento de Excepciones:

15 Programación I Gestión de Errores en Java public void pop() throws EmptyStackException { { if (size == 0) { throw new EmptyStackException(); } setObjectAt(size-1, null); size- -; } Lanzamiento de Excepciones:

16 Programación I Gestión de Errores en Java La clase Throwable y sus SubClases:  La clase java.lang.Throwable describe cualquier clase que puede ser lanzada como excepción.

17  Existen dos tipos de clases Throwable: Programación I Gestión de Errores en Java java.lang.Error representa errores de compilación y errores del sistema. Abarca fallos graves de los que los programas no pueden recuperarse y, por tanto, no suelen ser capturadas por los mismos. java.lang.Exception representa las excepciones generadas por la aplicación, por ende, las excepciones que los programas suelen capturar. Jerarquía de Clases:

18 Programación I Gestión de Errores en Java java.lang.RuntimeException representa excepciones generadas por la aplicación cuya gestión no es obligatoria. Comprende errores en tiempo de ejecución que se producen al efectuar operaciones sobre datos que se encuentran en la memoria de la computadora. Se subdivide en diversas subclases entre las que destacan: Jerarquía de Clases: ArithmeticException NullPointerException NumberFormatException IndexOutOfBoundsException

19 Programación I Gestión de Errores en Java java.io.IOException comprende los errores de entrada/salida. Jerarquía de Clases: FileNotFoundException EOFException java.lang.InterruptedException de cuyo tipo son los errores debidos a la interrupción de un hilo de ejecución por otro.

20  Sólo objetos que son instancias de la clase Throwable (o de una de sus subclases) pueden ser lanzados por la máquina virtual de java o con una instrucción throw.  Por convenio, la clase Throwable y sus subclases tienen dos constructores: uno sin argumentos y otro con un argumento de tipo String, el cual puede ser usado para producir mensajes de error.  Un objeto de la clase Throwable contiene el estado de la pila de ejecución (de su thread) en el momento en que fue creado. Programación I Gestión de Errores en Java La Clase Throwable:

21  String getMessage ()  void printStackTrace() Programación I Gestión de Errores en Java Devuelve el texto con el mensaje de error del objeto. Imprime este objeto y su traza en la salida de errores estándar.  void printStackTrace (PrintStream s)  void printStackTrace(PrintWriter s) Imprime este objeto y su traza en el canal especificado. Imprime este objeto y su traza en el print writer especificado. La Clase Throwable:

22 Programación I Gestión de Errores en Java  Error  Exception  VirtualMachineError  AWTError  ArithmeticException  NullPointerException  NumberFormatException  IndexOutOfBoundsException  StackOverflowError  OutOfMemoryError  RuntimeException  IOException  FileNotFoundException  EOFException

23 Programación I Gestión de Errores en Java ArithmeticException Las excepciones aritméticas son típicamente el resultado de una división por 0 ó una situación anómala en una operación aritmética. NullPointerException Se produce cuando se intenta acceder a un objeto que no ha sido definido y posee valor null. NoClassDefFoundException Se referenció una clase que el sistema es incapaz de encontrar. Excepciones Comunes:

24 Programación I Gestión de Errores en Java IndexOutOfBounds Lanzada cuando se intenta acceder a una posición inexistente en un arreglo. NoSuchFieldError Se intenta acceder a un atributo inexistente. NoSuchMethodError Se intenta acceder a un método inexistente. Excepciones Comunes:

25 Programación I Gestión de Errores en Java ClassCastException El intento de convertir un objeto a una clase de la cual no es instancia. y = (Prueba) x; // donde x no es de tipo Prueba NegativeArraySizeException Puede ocurrir si hay un error aritmético al intentar cambiar el tamaño de un array. IllegalArgumentException Ocurre cuando se llama a un método con un parámetro erróneo. Excepciones Comunes:

26 Programación I Gestión de Errores en Java NumberFormatException Se intenta convertir una cadena de caracteres a un número y ésta tiene caracteres no numéricos. InternalException Este error se reserva para eventos que no deberían ocurrir. Por definición, el usuario nunca debería ver este error y esta excepción no debería lanzarse. Excepciones Comunes:

27 Programación I Gestión de Errores en Java OutOfMemoryException ¡No debería producirse nunca! El intento de crear un objeto con el operador new ha fallado por falta de memoria. Y siempre tendría que haber memoria suficiente porque el garbage collector (recolector de basura) se encarga de proporcionarla al ir liberando objetos que no se usan y devolviendo memoria al sistema. Excepciones Comunes:

28 :: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Finalización


Descargar ppt ":: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación."

Presentaciones similares


Anuncios Google