Tema 14: Excepciones



Documentos relacionados
Uso de excepciones en Java

Excepciones. Gonzalo Méndez - Dpto. Ingeniería de Software e Inteligencia Artificial. Excepciones

Introducción - por qué usarlas?(1)

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones

Parte I: Programación en un lenguaje orientado a objetos

Un breve resumen del lenguaje Java

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

EXCEPCIONES EN JAVA. Las sentencias que tratan las excepciones son try y catch. La sintaxis es:

TEMA 5. EXCEPCIONES EN JAVA DEFINICIÓN DE EXCEPCIONES EN PROGRAMACIÓN TIPOS DE EXCEPCIONES / ERRORES Y CÓMO TRATARLOS

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

Manejo de Excepciones

2) Cual modificador limita el acceso a un método de una clase pública a los miembros de la misma clase?

Java: control de excepciones

Excepciones. Excepciones

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

Java RMI. Sistemas Distribuidos Rodrigo Santamaría

Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

TEMA 8. Excepciones en Java. Curso de Java. Manejo de Excepciones

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Java Optional ifpresent y como utilizarlo

El lenguaje de Programación C. Fernando J. Pereda

Si bien hay gran cantidad de excepciones, todas derivan de la clase Exception, además de las excepciones ya manejadas, se pueden crear propias.

Manejo de Errores Ejercicio Facturas

Tema 5 Corrección y Robustez Excepciones en Java

Elementos léxicos del lenguaje de programación Java

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

Multitarea en Java. Rafa Caballero - UCM

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

2. Estructura de un programa en Java

Manejo de Excepciones

PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07

Procesamiento de documentos XML

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Técnicas Avanzadas de Testing Automatizado

Examen de Prácticas de Programación Ingeniería Informática

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

1. Visión general de RMI

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

TEMA 8. Agenda. Excepciones

Java: control de excepciones

Modulo 1 El lenguaje Java

Manual del Protocolo XML-RPC de Mensajería Negocios

UD 4 GESTIÓN DE ERRORES. Pedro J. Ponce de León. Versión

Resumen Manejo de Excepciones

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Proyecto de ISIII. Pruebas Extra. Pruebas de Caja Blanca

Práctica: Creación de un programa C# sencillo

PROGRAMACIÓN EN JAVA

Metodología y Tecnología de la Programación

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA

Programación Orientada a Objetos en Java

Ejercicios de evaluación de fundamentos de programación en Java

15. Parámetros o argumentos

Benemérita Universidad Autónoma del Estado de Puebla

Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015

Tema 4. Excepciones en Java

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

11. Algunas clases estándar de Java (II)

Repaso de las características más importantes de la programación Java y su adaptación a Android

2.1. Introducción al lenguaje Java

Iniciación a Java. 1.Introducción a Java 2.Programación Orientada a Objetos 3.Fundamentos del lenguaje Java

Tema 1. Conceptos de Java para Estructuras de Datos: interfaces y programación genérica

APLICACIONES MÓVILES NATIVAS. Sesión 8: Arquitectura de las aplicaciones Android

Programación Concurrente en Java

FACULTAD DE INGENIERÍA

Módulo 11: MANEJO DE EXCEPCIONES 11-1

Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011

Benemérita Universidad Autónoma del Estado de Puebla

EJEMPLO DE PRUEBAS UNITARIAS Y DE INTEGRACIÓN.

CAPÍTULO 4: EXCEPCIONES EN JAVA

INTRODUCCION A LA PROGRAMACION EN JAVA

CORBA desde Java. Diego Sevilla Ruiz Sistemas Distribuidos. 1. Introducción

TÉCNICAS DE PROGRAMACIÓN Lenguaje Java

JAVA: Excepciones. Errores

FACULTAD DE INGENIERÍA

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

Java en 2 horas. Rodrigo Santamaría

Programación Orientada a Objetos en C#.NET CAPÍTULO 8 EXCEPCIONES. Ing. Bruno López Takeyas, M.C.

Programación orientada a objetos

INGENIERÍA DEL SOFTWARE. 4º ING. INFORMÁTICA (UPV/EHU) 29 de MAYO de 2006

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

Programación Orientada a Eventos

Sockets en Java. Prof. Wílmer Pereira Universidad Simón Bolívar

Transcripción:

Tema 14: Excepciones 0

Excepción Definición Las Excepciones son objetos que definen el estado de la aplicación cuando se producen situaciones anómalas. Son un mecanismo usado por muchos lenguajes de programación para describir que hacer cuando inesperado sucede. 1

Tipos de excepciones Exceptions Checked Son aquellas que ocurren de manera externa cuando el programa esta trabajando. Por ejemplo al intentar accesar a un archivo que no es localizado o la falla de red. Unchecked Runtime exceptions. Por ejemplo el intentar acceder a una localidad mas alla de la del fin del array (errores en diseño e implementación. Errors Son aquellas excepciones que son raras y difíciles de recuperarse de ellas como lo es correr fuera del rango de memoria. 2

Jerarquía de clases java.lang.object +----java.lang.throwable +----java.lang.exception +----java.lang.runtimeexception +----java.lang.arithmeticexception... +----java.lang.nullpointerexception... +----java.lang.ioexception +----java.lang.eofexception... +----java.lang.filenotfoundexception +----java.lang.error (uncheked) +----java.lang.virtualmachineerror... +----java.lang.assertionerror 3

Excepciones en tiempo de ejecución java.lang.runtimeexception java.lang.nullpointerexception //se ejecuta x.miembro para una variable x con valor null. java.lang.indexoutofboundsexception //acceso a un índice no existente en un array. java.lang.arithmeticexception //división por cero java.lang.classcastexception //error de casting. 4

Bloques try-catch y finally El bloque try-catch-finally permite capturar una excepción. finally es opcional. Pero siempre se ejecutará exista o no excepción. Si hay varias partes catch se ejecuta la primera posible. El catch utiliza la clase dinámica. Es posible uso de try-finally (sin catch), aunque no se puede usar try solo. 5

Bloques try-catch y Sintaxis finally try{ //Acciones susceptibles a excepción catch(excepcion1 var1) { // acción cuando se atrapa la excepción catch(excepcion2 var2) { // acción cuando se atrapa la excepción de mayor jerarquía finally{ // acción que se cumple ocurra o no una excepción 6

Propagación de excepciones Si ningún método hasta el main atrapa una excepción e, se llama a e.printstacktrace() (método de java.lang.throwable) 7

Propagación de excepciones. 8

Atrapando excepciones Ejemplo: public class TestExcepciones{ public static void main(string arg[]){ int datos[] = new int[5]; try{ datos[6] = 7; catch(arrayindexoutofboundsexception e){ System.out.println("Indice fuera de limites: "); System.out.println("Sigue por aqui"); 9

Ejemplo: Atrapando excepciones 2 class Ejemplo { public static void main(string args[]) { Ejemplo p = new Ejemplo(); p.g(); System.out.println("Final de método main"); void f (String s) { System.out.println(s.toString()); System.out.println("Final de método f"); 10

... Ejemplo void g () { try { System.out.println("Antes de f(null)"); f(null); System.out.println("Despues de f(null)"); catch (NullPointerException e) { System.out.println("Excepcion de apuntado nulo"); catch (IndexOutOfBoundsException e){ System.out.println("Excepcion de indice erroneo"); finally { System.out.println("Final de bloque try"); System.out.println("Final de método g"); // de la clase Ejemplo 11

Ventajas Beneficios (errores y/o situaciones anómalas): 1) Separación entre errores y código normal 2) Propagación de errores en la pila de métodos a ejecutar. 3) Agrupación de tipos de errores y diferenciación Se evita la alternativa en programación del uso de muchos if o if s anidados 12

Excepciones definidas en un programa Se aconseja su uso para situaciones de prueba y depuración. Ventajas: Permiten documentar mejor el programa. Permiten discriminar por medio de varios bloques catch consecutivos. Permiten transportar datos adicionales desde donde se crean a donde se capturan. Lo mejor es crearlas como excepciones comprobadas (heredan de Exception pero no de RunTimeException) 13

throws throws permite cualquier objeto Throwable, aunque generamente se usa sólo para las Exception. Evitar errores de compilación: Cuando un método puede lanzar una excepción comprobada se debe especificar en su cabecera con la keyword throws. Ejemplo: void metodouno throws IOException{ // acciones 14

throw throw permite indicar el lanzamiento de una excepción creada por el programador. La condición necesaria cuando se crea una excepción propia, es que esta clase herede de Exception Ejemplo: class miexcepcion extends Exception{ // acciones void metodouno throws miexcepcion{ // acciones if (! exito) { throw new miexception( Error en acceso al dato ); 15

Ejemplo class Exception2D extends Exception { public Exception2D (String mensaje) { super(mensaje); // Si algún método (como el main) crea Rectas, deberá // o bien hacer throws de Exception2D o bien // atrapar la excepción con bloque try-catch class Recta2D { private Punto2D p1, p2; private void crearrecta2d (Punto2D p1, Punto2D p2) { this.p1=p1; this.p2=p2; // Recta a partir de dos puntos public Recta2D (Punto2D p1, Punto2D p2) throws Exception2D { if (p1.equals(p2)) // definido en clase Punto2D throw new Exception2D("Una recta se crea con + dos puntos distintos"); else crearrecta2d(p1, p2); 16

...Ejemplo // Para una recta ax+by+c=0 public Recta2D (double a, double b, double c) throws Exception2D { if (a==0 && b==0) throw new Exception2D("En una recta no puede + ser a=b=0"); else if (a==0) crearrecta2d(new Punto2D(0, -c/b), new Punto2D(1, -c/b)); else if (b==0) crearrecta2d(new Punto2D(-c/a, 0), new Punto2D(-c/a, 1)); else crearrecta2d(new Punto2D(0, -c/b), new Punto2D(-c/a, 0)); public Punto2D interseccion (Recta2D recta) throws Exception2D {... throw new Exception2D( Rectas paralelas o + coincidentes );... 17