You are on page 1of 25

Excepciones

En Java los errores son conocidos como excepciones. Cuando se produce una excepcin, se crea un objeto del mismo tipo de la excepcin. La clase Throwable, es la superclase de todas las clases de manejo de errores.

Excepciones
Cuando se genera una excepcin, el programa en java busca un manejador para el error (handler). El handler es una porcin de cdigo 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.

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.

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 ejecucin. Ejemplo: RuntimeException

Clase Error, maneja Errores de la JVM

Clase Exception, maneja errores del programa

Excepciones

Ver archivo: StackUnwinding.java

Declarando Excepciones

La sentencia throw (lanzar) se usa en los mtodos para lanzar una excepcin que ser revisada por el compilador (checked exception): throw new NombreClasedeExcepcion(); Un mtodo que llama a otro que lanza una excepcin, se debe declarar de la siguiente forma: modificador tipodatoretorno nombremetodo(.., ...) throws NombreClasedeExcepcion Ejemplo: public static String getInput(String prompt) throws IOException { /* cdigo */ } Mltiples excepciones pueden ser separadas por comas. Ejemplo: public void read(BufferedReader in ) throws IOException, ClassNotFoundException{ /* cdigo */ }

Manejando Excepciones
Para manejar las excepciones y evitar que un programa termine por algn error se usa el bloque: try-catch. Las sentencias del bloque try, que se encuentran despus de la sentencia que caus la excepcin no se ejecutarn.

Bloque try-catch
El bloque try, encierra la porcin de cdigo donde se pueden producir excepciones. (try en espaol es intentar). El bloque catch contiene el cdigo que se va a ejecutar una vez que se produce un error (catch en espaol es atrapar). El bloque catch, tiene un argumento, que representa al tipo de excepcin 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.

Bloque try-catch
La clsula catch que recibe como argumento un objeto de tipo Exception, maneja todos los errores del programa, que no pueden ser atrapados por los otros dems 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.

Proceso de Manejo de Excepciones usando el bloque try-catch


Cuando ocurre una excepcin 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 excepcin que se ha dado.
Se compara el objeto que se creo cuando se produjo el error, con el tipo de excepcin que recibe como parmetro el catch, y entra al catch cuyo argumento sea del mismo tipo o una superclase de la excepcin que se produjo.

Cuando se termina de ejecutar el bloque catch, los dems bloques catch son ignorados y la ejecucin del programa contina en la primera lnea despus del bloque try-catch.

Bloque finally
El bloque finally siempre se ejecuta independientemente de si se da o no una excepcin. Es opcional y se lo usa generalmente para liberar recusos. 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 liberacin de recursos. }
Ver archivo: UsingExceptions.java

Mtodos de la clase Throwable


String getMessage()
Retorna un mensaje grabado en el objeto de excepcin.

void printStackTrace()
Muestra el contenido de la call stack. Es til para determinar en qu mtodo ocurri la excepcin, y que otros mtodos llamaron a este.

Ver Excepciones.java

Ejercicio
Crear una clase llamada NumberDivision. Esta clase contendr un mtodo que aceptar dos Strings, y realizar la divisin entre estos. Usar el mtodo parseInt() de la clase Integer (static int parseInt(String s)), para transformar de String a int. Si los Strings no son nmeros vlidos se genera un NumberFormatException,Esta excepcin debe ser capturada y un mensaje de error debe ser mostrado. El segundo nmero es usado para dividir el primer nmero. Si el segundo nmero es cero, una excepcin ArithmeticException es lanzada. Esta excepcin debe ser atrapada y un mensaje de error debe ser mostrado.

Ver archivo: NumberDivision.java


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

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

Modelamiento Orientado a Objetos

Qu es un modelo?
Un modelo es una abstraccin que se construye para entender y resolver problemas.

Por qu se construyen modelos?


Reducir la complejidad del sistema. Comunicar las ideas a otros. Visualizacin. Nos permite probar la entidad fsica antes de construirla. Los modelos documentan las decisiones que tomamos.

Modelamiento Orientado a Objetos


En este enfoque, el principal bloque de construccin de todos los sistemas software es el objeto. Para realizar modelos de sistemas orientados a objetos se usa el Lenguaje de Modelamiento Unificado (UML).

UML Lenguaje de Modelamiento Unificado

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, HewlettPackard, Microsoft, Oracle, ect. Contribuyeron con la versin 1.0 de UML En 1997 fue entregada al OMG (Object Managment Group).

Qu es UML?

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

UML ha sido utilizado en sistemas: Informacin Financieros Telecomunicaciones Transporte Defensa/aeroespacio Electrnica Mdica Cientficos Distribuidos

Fases en el desarrollo de sistemas

Anlisis del sistema Diseo Implementacin (programacin) Pruebas

Tcnicas: Cmo son construidos los modelos? Modelos pueden ser creados y extendidos en las diferentes fases de desarrollo. Modelos en el anlisis OO
Foco: Especificar el dominio o el problema Perspectiva: Desde el punto de vista del cliente o usuario Actividades tpicas: Entendimiento de los requerimientos, entendimiento del dominio del problema, identificar lmites del sistema, etc.

Modelos en el diseo OO
Foco: Resolver el problema Perspectiva: Del arquitecto, analista, diseador, programador Actividades tpicas: Definicin de arquitectura del software, escoger estructura de datos, desarrollar algoritmos, implementar relaciones, etc.

Modelos en la construccin (programacin) OO


Foco: Construir la solucin para soportar el modelo del diseo Perspectiva: Del arquitecto, analista, diseador, programador Actividades tpicas: Implementar clases, concurrencia, pruebas, funcionamiento, etc.

You might also like