excepciones

26
Excepciones

Upload: ronny-parra

Post on 21-Jun-2015

6.312 views

Category:

Documents


0 download

DESCRIPTION

Presentación que ilustra el manejo de excepciones en el lenguaje de programación Java. Introduce la clase throwable

TRANSCRIPT

Page 1: Excepciones

Excepciones

Page 2: Excepciones

Excepciones

• En Java los errores son conocidos como excepciones.

• Cuando se produce una excepción, se crea un objeto del mismo tipo de la excepción.

• La clase Throwable, es la superclase de todas las clases de manejo de errores.

Page 3: Excepciones

Excepciones

• Cuando se genera una excepción, el programa en java busca un manejador para el error (handler).

• El handler es una porción de código que identifica el tipo de objeto correspondiente al error que se ha producido, y contiene sentencias que se van a ejecutar luego de que ocurrió el error.

Page 4: Excepciones

Excepciones

• Se pueden dar varios tipos de errores:– Al tratar de acceder a elementos de arreglos con un

índice mayor al del último elemento del arreglo.– Divisiones para cero.– Manejo de archivos.

• No existe, no se tienen suficientes permisos, etc.

– Errores accediendo a bases de datos.– Errores definidos por el usuario

• Tarjeta incorrecta, excede cupo de transferencia, etc.

Page 5: Excepciones

Tipos de Excepciones

• Checked: Son las excepciones que revisa el compilador.

• Unchecked: Son las excepciones que no revisa el compilador y se dan en tiempo de ejecución. Ejemplo: RuntimeException

Clase Error, maneja

Errores de la JVM

Clase Exception,

maneja errores del programa

Page 6: Excepciones

Excepciones

Ver archivo: StackUnwinding.java

Page 7: Excepciones

Declarando Excepciones• La sentencia throw (lanzar) se usa en los métodos para lanzar una

excepción que será revisada por el compilador (checked exception):– throw new NombreClasedeExcepcion();

• Un método que llama a otro que lanza una excepción, se debe declarar de la siguiente forma:– modificador tipodatoretorno nombremetodo(.., ...) throws

NombreClasedeExcepcion• Ejemplo:

public static String getInput(String prompt) throws IOException {

/* código */ }

– Múltiples excepciones pueden ser separadas por comas. • Ejemplo: public void read(BufferedReader in ) throws IOException, ClassNotFoundException{ /* código */ }

Page 8: Excepciones

Manejando Excepciones

• Para manejar las excepciones y evitar que un programa termine por algún error se usa el bloque: try-catch.

• Las sentencias del bloque try, que se encuentran después de la sentencia que causó la excepción no se ejecutarán.

Page 9: Excepciones

Bloque try-catch• El bloque try, encierra la porción de código donde se

pueden producir excepciones. (try en español es intentar).

• El bloque catch contiene el código que se va a ejecutar una vez que se produce un error (catch en español es atrapar).

• El bloque catch, tiene un argumento, que representa al tipo de excepción que el manejador (handler) puede procesar.

• Por cada bloque try, hay por lo menos un bloque catch, de tal forma que se pueden capturar varios tipos de excepciones.

Page 10: Excepciones

Bloque try-catch

• La clásula catch que recibe como argumento un objeto de tipo Exception, maneja todos los errores del programa, que no pueden ser atrapados por los otros demás bloques catch y debe ser puesto como último bloque catch.

• Recordar que Exception es la superclase de todas las excepciones que produce mi programa y puede manejar las excepciones producidas por sus subclases.

Page 11: Excepciones

Proceso de Manejo de Excepciones usando el bloque try-catch

• Cuando ocurre una excepción en una parte del programa que está siendo manejada por un bloque try-catch, se deja de ejecutar el resto de instrucciones del bloque try y se pasa el control del programa al primer bloque catch.

• El programa busca el bloque catch que pueda procesar el tipo de excepción que se ha dado. – Se compara el objeto que se creo cuando se produjo el error,

con el tipo de excepción que recibe como parámetro el catch, y entra al catch cuyo argumento sea del mismo tipo o una superclase de la excepción que se produjo.

• Cuando se termina de ejecutar el bloque catch, los demás bloques catch son ignorados y la ejecución del programa continúa en la primera línea después del bloque try-catch.

Page 12: Excepciones

Bloque finally

try { Sentencias; } catch (UnTipodeException ex1) { sentencias de manejo de error; } catch (OtroTipodeException ex2) { sentencias de manejo de error; } finally { //es opcional y contiene sentencias de liberación de recursos. }

El bloque finally siempre se ejecuta independientemente de si se da o no una excepción. Es opcional y se lo usa generalmente para liberar recusos.

Ver archivo: UsingExceptions.java

Page 13: Excepciones

Métodos de la clase Throwable

• String getMessage()– Retorna un mensaje grabado en el objeto

de excepción.

• void printStackTrace()– Muestra el contenido de la call stack. Es

útil para determinar en qué método ocurrió la excepción, y que otros métodos llamaron a este.

• Ver Excepciones.java

Page 14: Excepciones

Ejercicio

• Crear una clase llamada NumberDivision. Esta clase contendrá un método que aceptará dos Strings, y realizará la división entre estos. Usar el método parseInt() de la clase Integer (static int parseInt(String s)), para transformar de String a int. Si los Strings no son números válidos se genera un NumberFormatException,Esta excepción debe ser capturada y un mensaje de error debe ser mostrado. El segundo número es usado para dividir el primer número. Si el segundo número es cero, una excepción ArithmeticException es lanzada. Esta excepción debe ser atrapada y un mensaje de error debe ser mostrado.

Ver archivo: NumberDivision.java

Ver también ejemplo adicional sobre como crear y usar sus propias clases de excepciones: Student.java

Page 15: Excepciones

Tarea de Excepciones

• Tarea 6, publicada en Metis. Fecha de entrega: Viernes 1 de Junio.

Page 16: Excepciones

Modelamiento Orientado a Objetos

Page 17: Excepciones

Qué es un modelo?

Un modelo es una abstracción que se construye para entender y resolver problemas.

Page 18: Excepciones

Por qué se construyen modelos?

Reducir la complejidad del sistema.Comunicar las ideas a otros.Visualización. Nos permite probar la entidad física antes de

construirla.Los modelos documentan las decisiones que

tomamos.

Page 19: Excepciones

Modelamiento Orientado a Objetos

En este enfoque, el principal bloque de construcción de todos los sistemas software es el objeto.

Para realizar modelos de sistemas orientados a objetos se usa el Lenguaje de Modelamiento Unificado (UML).

Page 20: Excepciones

UML Lenguaje de Modelamiento

Unificado

Page 21: Excepciones

Breve Historia UML

En 1994 se unificaron: OMT (Object Modeling Technique) – Rumbaugh. Booch – Gary Booch

En 1995 se integró OOSE(Object-Oriented Software Engineering) – Jacobson.

Luego varias empresas como: IBM, Hewlett-Packard, Microsoft, Oracle, ect. Contribuyeron con la versión 1.0 de UML

En 1997 fue entregada al OMG (Object Managment Group).

Page 22: Excepciones

Qué es UML?

UML es un lenguaje de modelamiento estándar que sirve para visualizar, especificar, construir y documentar los artefactos de un sistema orientado a objetos.

Page 23: Excepciones

UML ha sido utilizado en sistemas: Información Financieros Telecomunicaciones Transporte Defensa/aeroespacio Electrónica Médica Científicos Distribuidos

Page 24: Excepciones

Fases en el desarrollo de sistemas

Análisis del sistemaDiseñoImplementación (programación)Pruebas

Page 25: Excepciones

Técnicas: Cómo son construidos los modelos?Modelos pueden ser creados y extendidos en las

diferentes fases de desarrollo.Modelos en el análisis OO

Foco: Especificar el dominio o el problemaPerspectiva: Desde el punto de vista del cliente o

usuarioActividades típicas: Entendimiento de los

requerimientos, entendimiento del dominio del problema, identificar límites del sistema, etc.

Page 26: Excepciones

Modelos en el diseño OOFoco: Resolver el problemaPerspectiva: Del arquitecto, analista, diseñador,

programadorActividades típicas: Definición de arquitectura del

software, escoger estructura de datos, desarrollar algoritmos, implementar relaciones, etc.

Modelos en la construcción (programación) OOFoco: Construir la solución para soportar el modelo del

diseñoPerspectiva: Del arquitecto, analista, diseñador,

programadorActividades típicas: Implementar clases, concurrencia,

pruebas, funcionamiento, etc.