Exceptions y Assertions Introducción a la terminología Bloques: try, catch Uso de finally Bloques: try, catch, finally Categorías de Exceptions Excepciones.

Slides:



Advertisements
Presentaciones similares
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.
Advertisements

Curso de java básico (scjp)
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.
Curso de Java Capitulo 7: Continuación Poo Profesor:
EXCEPCIONES UNIDAD 5.
Programación Interactiva Manejo de Excepciones
Instrucciones y excepciones
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.
Siguiente Excepciones Introducción. AnteriorSiguiente Definición Una excepción es un evento que ocurre durante la ejecución de un programa que desestabiliza.
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.
Manejo de excepciones en Java
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.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CINCO CONSOLE.
Tema 6: Clases Antonio J. Sierra.
1 TEMA 5. Seguridad en Java 1.Introducción a los Controladores de Seguridad 2.Decidir qué Métodos Sobreescribir del SecurityManager 3.Escribir un Controlador.
Manejo de Excepciones Agustín J. González ELO329.
Programación con Assertions
Conversión cadena a número
Tema 11: Excepciones Antonio J. Sierra.
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.
Programación orientada a objetos Capítulo 12 Manejo de errores.
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.
1 Manejo de Excepciones y otros Agustín J. González ELO-329.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Programación Interactiva Manejo de Excepciones Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle.
Java.
ELO3291 Manejo de Excepciones Lectura sugerida de texto en linea: Eckel, Bruce. Thinking About C++, 2nd Edition, Prentice-Hall, Gratis en
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.
Tratamiento de excepciones
Manejo de errores: Excepciones en Java ELO329: Diseño y Programación Orientados a Objetos.
ELO3291 Manejo de Excepciones Agustín J. González ELO329.
Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4.
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.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
:: 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.
Clases “ Es una Abstracción de un elemento del mundo real ”
ECOM-6030 CAPÍTULO 7 EXCEPTION HANDLING Prof. Nelliud D. Torres © - Derechos Reservados.
Desarrollador Profesional de Juegos Programación III Unidad I Excepciones Tipos.
SCITMina | by Microsoft Bienvenidos Eduardo Daniel Tenorio Mayo Microsoft Student Partner Taller de Programación Orientada a Objetos Con C# Edgar Edel.
:: 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.
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.
Programación Orientada a Objetos
Transcripción de la presentación:

Exceptions y Assertions Introducción a la terminología Bloques: try, catch Uso de finally Bloques: try, catch, finally Categorías de Exceptions Excepciones comunes Mis excepciones Manejo de Excepciones

Mecanismos que permiten detectar errores fácilmente sin escribir código especial para testear valores de retorno Mantienen el código de manejo del error separado de el que genera el error

Las excepciones manejan situaciones inesperadas: Archivo no encontrado, falla en la red, argumento ilegal,etc Las assertions documentan y testean los supuestos del programa Esto nunca puede ser negativo Los testeos de assertions pueden eliminarse completamente del código, así no hace más lenta la ejecución

El término exception significa condición excepcional y se da cuando se altera el flujo normal de un programa. Cuando ocurre un evento excepcional en Java, se dice que se lanza (throw) una excepción. Al código que es responsable de hacer algo al respecto se le llama exception handler y es quien atrapa (catch) la excepción que se lanzó.

Por ejemplo, cuando se invoca un método que abre un archivo y este no puede ser abierto, la ejecución de ese método se termina y el código que maneja ese error se ejecuta. Para esto se precisa una forma de decirle a la JVM que código ejecutar cuando cierta excepción es lanzada.

El try se utiliza para definir un bloque de código que puede lanzar una excepción Luego se define una o más cláusulas catch que atrapen ciertas excepciones y definen el código manejador de la misma.

Si se tiene uno o más bloques catch, estos deben aparecer inmediatamente después de un bloque try. Todos los bloques catch deben aparecer uno a continuación del otro

Los bloques try y catch no resuelven el problema de cómo limpiar los recursos luego de un error Para resolver este problema, Java provee el bloque finally Este bloque siempre se ejecuta luego del try, se haya lanzado una excepción o no

Es legal utilizar un bloque try sin un catch o finally Un bloque try sin ambas da error de compilación Los bloques catch deben aparecer siguiendo al bloque try El bloque finally debe aparecer luego de los catch Es legal omitir los catch o el finally pero no ambos

Existen dos grandes categorías de excepciones: Checked Unchecked

La clase Exception es la clase base que representa las excepciones checked. La clase RuntimeException es la clase base que representa las excepciones uncheked. La clase Error es la clase base que representa los errors.

ArithmeticException NullPointerException NegativeArraySizeException ArrayIndexOutOfBoundsException SecurityException

¿Por que los catch no son requeridos? ¿Que pasa cuando se lanza una excepción de un bloque try que no tiene catch asociado? Si la excepción no es manejada en el bloque try-catch actual, es lanzada al método que lo invocó. Si la excepción llega al método main y no es manejada, el programa termina de forma abrupta

A continuación vemos un ejemplo de como utilizar un bloque con un try sin hacer uso del catch. En este ejemplo, se lee la primer línea de un archivo. Se utiliza una instancia de la clase BufferedReader para leer los datos del archivo. Como vemos, la variable utilizada es cerrada en el bloque finally.

Cuando se lanza una excepción, Java intentará encontrar la cláusula catch para el tipo correspondiente de excepción Si no encuentra una, seguirá buscando por la jerarquía de herencia hacia arriba Si no encuentra nada que matchee entonces la excepción se propaga por el stack de llamadas Importante: los handlers para las excepciones más específicas deben colocarse entes que los más generales

Cuando se detecta que ha ocurrido un error podemos crear una excepción y lanzarla if ( n < 0) { throw new Exception(numero negativo); } Para declarar que el método lanza una excepción hay que utilizar la palabra throws

Cuando se sobrescribe un método que lanza alguna excepción, éste puede lanzar las mismas excepciones o alguna subclase de las mismas. No puede lanzar más de lo que lanza el método padre.

A continuación vemos un ejemplo en el cual el método toString para la clase Empleado, fue sobre escrito.

Para lanzar una excepción definida por el usuario, utilice la siguiente sintaxis: throw new NombreClaseException(); Simpre instancie la exception en la misma línea donde se lanza, porque la excepción toma el número de línea dónde fue creada.

En el ejemplo anterior, definimos un método llamado divide, el cual recibe dos números. Si el segundo número es cero, entonces se lanza una excepción de tipo MiException. Como vemos, el método debe tener la declaración de dicha excepción.

Existen dos sintaxis permitidas para la sentencia assert assert ; assert > : > ; Si la > retorna false, entonces un AssertionError es lanzado. El segundo argumento es convertido a String y usado como texto descriptivo en el mensaje de AssertionError.

Para la documentación y verificación de supuestos asumidos en la lógica de un método: Invariantes internas Control de flujo invariante PostCondiciones e invariantes de clase No es recomendado para el control de precondiciones en métodos públicos

if ( x > 0 ){ //…….. } else{ //…….. } if ( x > 0 ){ //…….. } else{ assert(x>=0); //…….. }

public Object pop(){ int size = this.getElementCount(); if(size == 0){ throw new RuntimeException(Error..) } //hace el trabajo de pop //test postcondicion assert (this.getElementCount() == size-1 ) return value; }

Si las assertion están deshabilitadas, el código ejecuta tan rápido como si no estuvieran. Assertion están deshabilitadas por defecto Para habilitarlas java -enableassertions java -ea Para dehabilitarlas java -disableassertions java -da

ComandoQue significa? java -ea Java –enableassertions Habilita assertions java -da java –disableassertions Deshabilita assertions java –ea:com.foo.BarHabilita asserts en la clase com.foo.Bar java –ea:com.fooHabilita asserts en paquete com.foo.Bar y sus subpaquetes java –ea –dsaHabilita asserts en general, deshabilita asserts en clases system java –ea –da:com.fooHabilita asserts en general, deshabilita asserts en paquete com.foo y sus subpaquetes.

Exceptions y Assertions: diferencias Introducción a la terminología Bloques: try, catch Uso de finally Bloques: try, catch, finally Categorías de Exceptions Excepciones comunes Mis excepciones Manejo de Excepciones Ejemplos

Thinking in Java Bruce Eckel The Java Tutorial xceptions/ xceptions/ Introduction to Java Exception Handling handling/index.html