Programación Interactiva Manejo de Excepciones Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle.

Slides:



Advertisements
Presentaciones similares
Java nos ofrece System.out para escribir en pantalla, pero también tenemos System.in para leer. System.in es un objeto de una clase de java que se llama.
Advertisements

Ayudantía Pre-Actividad 5 Multimedios. Ayudantía Pre-Actividad 5 (1) creación de varias clases, y composición (2) manejo de threads (3) manejo de excepciones.
Exceptions y Assertions Introducción a la terminología Bloques: try, catch Uso de finally Bloques: try, catch, finally Categorías de Exceptions Excepciones.
Archivos de Texto. Introducción Los archivos son una secuencia de bits que se guarda en el disco duro. La ventaja de utilizar archivos es que los datos.
Introducción a la programación en JAVA
EXCEPCIONES UNIDAD 5.
Programación Interactiva Manejo de Excepciones
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Programación en Java Instructor:.
MANEJO DE EXCEPCIONES EN C++
Excepciones Las excepciones son señales (en forma de objeto) que se generan en ejecución en casos de errores, para que puedan ser gestionadas en el programa.
Arquitectura CLARO-TECNOTREE CAPITULO 4: Excepciones
Capitulo 4 Excepciones.
Informática II Prof. Dr. Gustavo Patiño MJ
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
UNIVERSIDAD LATINA (UNILA)
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Control de excepciones
Manejo de excepciones en Java
Modificadores.
Lic. Rosemary Torrico Bascopé
INSTITUTO TECNOLOGICO DE TEHUACAN Ingeniería en sistemas computacionales Curso de apoyo a la titulación EXCEPCIONES EN JAVA Diciembre de 2008.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
SCJP Sun Certified Programmer for Java 6
Manejo de Excepciones Agustín J. González ELO329.
Semana 5 Subprogramas..
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Tema 11: Excepciones Antonio J. Sierra.
Introducción a Java (2ª parte) - excepciones, colecciones, i/o, … -
Lenguaje Java Fundamentos del lenguajes de programación
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 8 Excepciones y afirmaciones o invariantes.
Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.
Computación II Unidad X Manejo de Excepciones. Presentación de la Unidad Objetivos: –Saber manejar situaciones inesperadas dentro de un programa –Comprender.
USO DE EXCEPCIONES EN JAVA LSC. Natalia Rodríguez Castellón.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CUATRO CONTROL DE FLUJOS, EXCEPCIONES Y ASERSIONES.
Módulo 8: Manejo de Errores y Excepciones
Manejo de excepciones en Java ELO329: Diseño y Programación Orientados a Objetos Agustín J. González.
Programación Orientada a Objetos Unidad 4 Excepciones Universidad de Chile Departamento de Ciencias de la Computación.
ING.CIP.IVAN PETRLIK AZABACHE. SEMANA 4 MANEJO DE EXCEPCIONES Y ERRORES.
Unidad III Manejo de Excepciones en Java y C++
Excepciones Unidad 5.
Sintaxis Completa los siguientes esquemas: Esquema de excepción Excepción Definición Tipos Implementación En el lenguaje Java, excepción es un tipo de.
1 Manejo de Excepciones y otros Agustín J. González ELO-329.
Java.
Programación avanzada en Java Miguel Ángel Corella 26 de Septiembre de 2005.
Manejo de errores: Excepciones en Java
Programación orientada a objetos Capítulo 12 Manejo de errores.
EXCEPCIONES. Java incorpora soporte para manejar situaciones anómalas conocidas como EXCEPCIONES que pueden ocurrir durante la ejecución de un programa.
Detalles Generales sobre Java
Tratamiento de excepciones
Manejo de errores: Excepciones en Java ELO329: Diseño y Programación Orientados a Objetos.
MANEJO DE EXCEPCIONES. 21/11/2005 E.T.S de Ingenieros de Telecomunicacion.2 Índice ¿Qué es una excepción? Tipos de situaciones. Manejo de excepciones.
¿Qué son? – tipos – manejo - ejemplos
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
Ada 2º Parte (variables, ámbitos, subrutinas, tipos abstractos de datos y excepciones)
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Desarrollador Profesional de Juegos Programación III Unidad I Capturar Excepciones.
Desarrollador Profesional de Juegos Programación III Unidad I Excepciones Tipos.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Excepciones Diseño y manejo de excepciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 5 Versión
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Tema 1: Concurrencia con Java
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Lenguaje de Programación Java
Transcripción de la presentación:

Programación Interactiva Manejo de Excepciones Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle

2 ¿Qué es una excepción? Las excepciones son las formas en que los programas de Java manejan los diferentes errores que pueden ocurrir. Puede pensarse en una excepción como en un “error”. Cuando una excepción ocurre decimos que fue “lanzada”, y cuando manejamos dicha excepción, es decir hacemos algo al respecto del error, decimos que fue “capturada” Ejemplos de excepciones son:  Tratar de convertir la cadena “123A4” a número  Tratar de llamar a un método no estático de una referencia null

3 ¿Qué es una excepción? Para capturar excepciones en un bloque de código susceptible debemos usar usar un bloque try..catch, que radica en un bloque de instrucciones en el que se capturarán las excepciones ( try), y uno o más bloques de manejo de excepciones (catch) Por ejemplo: try { // sentencias a monitorear el error } catch (tipoexcepcion nombrevar) { // sentencias de manejo de la excepción } finally { //sentencias a ejecutar ocurran o no excepciones } Una o más Opcional

4 ¿Qué es una excepción? Por ejemplo: try { int i = Integer.parseInt(“123A4”); } catch (NumberFormatException nfe) { System.out.println(“El formato del número es erroneo”); }

5 Ejemplo práctico try { String input = JOptionPane.showInputDialog(“Digite un “+ “número:”); int i = Integer.parseInt(input); System.out.println(“El número es ”+i); } catch (NumberFormatException nfe) { System.out.println(“El formato del número es erroneo”); } catch (NullPointerException npe) { System.out.println(“Usted no ha digitado ningún número”); } Este código pediría al usuario un número, en el caso de que el número sea válido, el programa imprime el primer mensaje. Si el número es inválido, el segundo mensaje es mostrado. Y si el usuario cierra el cuadro de dialogo (caso en el cual showInputDialog retorna null), entonces el tercer mensaje sería mostrado.

6 Excepciones no tratadas Cuando en un programa se arroja una excepción y esta no es capturada, la excpeción supera los límites del programa y es capturada por la JVM, mostrando un mensaje parecido a este: Exception in thread "main“ java.lang.NullPointerException at MiClase.main(MiClase.java:17)

7 ¿Cómo arrojar una excepción? En ocasiones no solo debemos capturar excepciones predefinidas, sino que debemos crear nuestras propias excepciones y arrojarlas. Para arrojar una excepción debe usarse la palabra reservada throw, que funciona se usa así: … if (elNumeroNoMeGustó) throw new NumberFormatException() … En el ejemplo estamos arrojamos una de las excepciones predefinidas que es usada para informar de errores en el formato de conversiones de String a número.

8 Tipos de excepciones Pueden distinguirse dos tipos de excepciones:  Runtime Exceptions: Son excepciones que se producen en el sistema de ejecución de Java. Tal como usar referencias null, hacer una dividisión entre cero, acceder a un elemento inexistente en un array.  NonRuntime Exceptions: Son excepciones que se producen fuera del sistema de ejecución de Java. Son ejemplo de estas las excepciones que se producen por acceso a archivos (IOExceptions) En el segundo tipo de excepciones el compilador se asegura de que el programador maneje la excepción (es decir, que cree un bloque try…catch)

9 Tipos de excepciones La manera de distinguir ambos tipos de excepciones es mediante la clase de las que estas extienden (si, todas las excepciones son clases). Las excepciones del tipo Runtime deben extender de la clase RuntimeException, mientras lsas de tiopo NonRuntime deben extender de Exception.

10 Errores Además de las excepciones, en Java existen los Errores, clases parecidas a las excepciones, pero su objetivo es informar de una situación anormal grave, algo así como situaciones que nunca debieron ocurrir. Son ejemplos de errores las clases:  ThreadDeath  VirtualMachineError  AssertionError Debido a que los Errores son “inesperados”, el compilador no exige al compilador que los capture. Todos los Errores deben extender de la clase Error

11 Excepciones NonRuntime Si tratáramos de compilar una clase que tuviera el siguiente método: El compilador nos daría este error public boolean abreArchivo() { new FileInputStream(“archivo.txt”); return true; } unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown Debido a que no estamos capturando la excepción FileNotFoundException que puede ser lanzada

12 Excepciones NonRuntime Para librarnos del problema tenemos dos opciones:  Capturar la excepción: public boolean abreArchivo() { try { new FileInputStream(“archivo.txt”); return true; } catch (IOException ioe) { return false; } O indicar en la declaración del método, que la excepción puede ser lanzada: public boolean abreArchivo() throws IOException { new FileInputStream(“archivo.txt”); return true; }

13 Arrojando Excepciones Para arrojar una excepción debemos usar la palabra throw seguida de un objeto del tipo Excepción (o Error) Esto es útil cuando queremos informar al programa invocador que ocurrió una situación anómala en nuestro código Por ejemplo: public boolean debitarCuenta (int valor) throws InvalidAmountException { … if (balance+sobregiro+sobrecanje < valor) throw new InvalidAmountException() … }

14 Creación de Excepciones public class InvalidAmountException extends RuntimeException {} public class InvalidAmountException extends Exception {} Podemos crear una excepción tan solo creando una clase que extienda de otra excepción ya existente: Y como es una clase, podemos colocar cualquier método y atributo que se nos ocurra: public class InvalidAmountException extends RuntimeException { protected int valorInvalido; public InvalidAmountException(int valorInvalido) { this.valorInvalido = valorInvalido; } public int getValorInvalido() { return valorInvalido; }

15 Excepciones comunes CloneNotSupportedException: No se pudo copiar un objeto mediante clone(). IllegalAccessException: Algún método invocado es no visible. InstantiationException: Se ha intentado instanciar una interfaz o una clase abstracta.

16 Excepciones comunes InterruptedException: Cuando se invoca a interrupt() sobre un thread dormido. NoSuchFieldException: La clase no tiene un atributo con ese nombre. NoSuchMethodException: La clase no tiene un método con ese nombre.

17 Excepciones comunes (RTE) IOException Generalmente fallas de entrada o salida, tal como la inhabilidad de leer desde un archivo. NullPointerException: Referencia a un objeto NULL NumberFormatException: Una conversión fallida entre Strings y números OutOfMemoryException: Muy poca memoria para instanciar un objeto nuevo (new)

18 Excepciones comunes (RTE) SecurityException: Un applet tratando de realizar una acción no permitida por la configuración de seguridad del browser StackOverflowException: El sistema corriendo fuera de espacio en Stack (stack space) ArrayIndexOutOfBoundsException: Un programa tratando de almacenar, el tipo de índice erróneo, de datos en un arreglo. FileNotFoundException: Un intento de acceder a un archivo que no existe.

19 Excepciones comunes (RTE) ArithmeticException: Errores Matemáticos, como división por cero. ArrayStoreException: Intento de almacenar un objeto equivocado en un vector. IllegalArgumentException: Se ha pasado un argumento inválido a un método:  IllegalThreadStateException: Un thread no estaba en el estado adecuado.  NumberFormatException: Una cadena contenedora de un número, no lo contiene.

20 Excepciones comunes (RTE) ClassCastException: Intento de conversión inválida. IllegalMonitorStateException: Se ha usado wait/notify fuera de código sincronizado. IndexOutOfBoundsException: Acceso a un vector fuera de sus límites:  ArrayIndexOutOfBoundsException: Idem, para una matriz.  StringIndexOutOfBoundsException: Idem, para una cadena.

21 Excepciones comunes (RTE) IllegalStateException: Método invocado en un momento inapropiado. NegativeArraySizeException: Intento de creación de un vector de tamaño negativo. UnsupportedOperationException: Una operación invocada no se soporta.

22 Errores comunes LinkageError: Una clase no satisface la dependencia que tiene respecto a otra.  ClassCircularityError: Se detectó una herencia circular entre clases.  ClassFormatError: Una clase cargada no ha sido incompletamente descrita. o UnsupportedClassVersionError: La versión de una clase no es correcta.  ExceptionInInitializerError: Error al iniciar un miembro static.

23 Errores comunes  IncompatibleClassChangeError: En una clase, su interfaz no es igual al declarado AbstractMethodError: Se ha invocado un método abstracto. IllegalAccessError: La aplicación intentó acceder a algún miembro no visible. InstantiationError: Se intentó instanciar una clase abstracta o interfaz. NoSuchFieldError: No se encontró determinado aributo. NoSuchMethodError: No se encontró determinado método.

24 Errores comunes  NoClassDefFoundError: No se encontró una clase cuando se necesitaba.  UnsatisfiedLinkError: Se encontró un enlace insatisfecho en un método nativo.  VerifyError: Se ha producido un error de verificación al cargar una clase. ThreadDeath: Se ha lanzado en el thread víctima tras llamar a stop().

25 Errores comunes VirtualMachineError: La máquina virtual se ha averiado o quedado sin recursos.  InternalError: Error interno en tiempo de ejecución.  OutOfMemoryError: El lector ha agotado la memoria.  StackOverflowError: Desbordamiento de pila. ¿Recursión infinita?.  UnknownError: Grave error desconocido..