Diseño y Programación Orientada a Objetos

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

Exceptions y Assertions Introducción a la terminología Bloques: try, catch Uso de finally Bloques: try, catch, finally Categorías de Exceptions Excepciones.
EXCEPCIONES UNIDAD 5.
Programación en Java Instructor:.
MANEJO DE EXCEPCIONES EN C++
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
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
INSTITUTO TECNOLOGICO DE TEHUACAN Ingeniería en sistemas computacionales Curso de apoyo a la titulación EXCEPCIONES EN JAVA Diciembre de 2008.
Manejo de Excepciones Agustín J. González ELO329.
Tema 11: Excepciones Antonio J. Sierra.
Introducción a Java (2ª parte) - excepciones, colecciones, i/o, … -
El lenguaje de programación Java
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.
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.
Unidad III Manejo de Excepciones en Java y C++
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
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.
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
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.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
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,
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 ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Java RMI. Entornos orientados a objetos  Tendencia actual hacia sistemas compuestos por un conjunto de objetos que interactúan entre sí.  Un programa.
Manejo de Excepciones Agustín J. González ELO329 ELO329.
Diseño y Programación Orientada a Objetos
Diseño y Programación Orientada a Objetos
Diseño y Programación Orientada a Objetos
Ingeniero en Computación José Alfredo Cobián Campos
Diseño y Programación Orientada a Objetos
Exception Object Throwable Error Exception Runtime Exception.
Diseño y Programación Orientada a Objetos
Diseño y Programación Orientada a Objetos
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Manejo de errores: Excepciones en Java
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Manejo de Excepciones Agustín J. González ELO329.
Diseño y Programación Orientada a Objetos
Manejo de errores: Excepciones en Java
Manejo de Excepciones Agustín J. González ELO329.
DOCENTE: EMILIO ISMAEL BUSTAMANTE MONTES
Manejo de Excepciones Agustín J. González ELO329.
Manejo de errores: Excepciones en Java
Manejo de errores: Excepciones en Java
Manejo de Excepciones Agustín J. González ELO329.
Lenguaje de Programación Java
Manejo de Excepciones Agustín J. González ELO329 ELO329.
Programación Orientada a Objetos
String, random y stream en java
Manejo de errores: Excepciones en Java
Manejo de excepciones en Java
Manejo de Excepciones en C++
Manejo de Excepciones en C++
Programación Orientada a Objetos
Manejo de Excepciones y otros
Transcripción de la presentación:

Diseño y Programación Orientada a Objetos Conferencia # 12: Excepciones TEMA # 4: Nociones de tratamiento de excepciones y errores Facultad Ing. Informática ISPJAE

Contenido Excepción Filosofía del tratamiento de errores a través de excepciones Discriminación de excepciones Declaración de tipos de excepciones Declaraciones throw y throws Excepciones y constructores

package a public class A{ public void m() { … } … } package b package c import a.A public class B { public void k(){ A a= new A(); a.m(); … } …} import a.A public class C { public void g(){ A a= new A(); a.m(); … } …}

Solución  Excepciones Ejemplos String public char charAt(int index) public boolean contains(CharSequence  s) Solución  Excepciones

Excepción Evento que ocurre durante la ejecución e interrumpe el flujo normal del programa. Error que interrumpe el programa. Objeto de una clase específica. Incluye información del error ocurrido y un comportamiento propio de la categoría. Java tiene varias categorías de excepcio-nes predefinidas. El programador puede definir nuevas categorías de excepciones.

Tratamiento de errores con excepciones Si un método encuentra un problema que no puede resolver “lanzará” una excepción. Quien lo llamó, directa o indirectamente, maneja el problema.

Tratamiento de errores con excepciones a) Servidor detecta error, lanza una excepción. Cliente la atrapa y maneja error. Solicitud Servidor Detecta error y lanza una excepción Cliente Atrapa excepción y maneja error Excepción (objeto)

Tratamiento de errores con excepciones b) Servidor indirecto detecta error y lanza excepción. Uno o varios clientes atrapan excepción y manejan error según puedan.

Detecta error y lanza excep. Cliente Atrapa excep. y maneja error Servidor Detecta error y lanza excep. Cliente Atrapa excep. y maneja error Solicitud Solicitud Excepción (objeto) Excepción (objeto) Cliente/Servidor Atrapa excep. y maneja error. Atrapa excep., maneja error y vuelve a lanzar. No atrapa excep. y la deja continuar

Excepciones estándar de Java Throwable Error Exception RunTimeException

Tratamiento de Excepciones en Java Mecanismo similar al resto de los lenguajes OO

try { body } catch (ExcepClass1 excepObj) { excepHandlerBody1 catch (ExcepClass2 excepObj) { excepHandlerBody2 … finally { excepHandlerBodyFinally

Ejemplo Course Group Student public class Student{ 1 1..* 1 1..* Course Group Student public class Student{ private String name; private int mark; private char sex; ... }

public class Group { private ArrayList<Student> students; public float averageSex(char sex){ int countSex= 0; float sum= 0; for(int i= 0; i < students.size(); i++) if(students.get(i).getSex() == sex){ countSex ++; sum += students.get(i).getMark(); } return sum/countSex; ...}

public class Course{ private ArrayList<Group> groups; public float averageSexGroup(int index, char sex){ try{ return groups.get(index).averageSex(sex); } catch(IndexOutOfBoundsException){ System.out.println("Error: El grupo " + index +" no existe"); } catch(Exception){ System.out.println("No existen estudiantes del sexo " + sex); } } }

Java especifica las excepcio-nes que lanzan las clases charAt public char charAt(int index) Returns the char value at the specified … Throws: IndexOutOfBoundsException - if the index argument is negative or not less than the length of this string.

Declaración throw Para lanzar/relanzar explícitamente una excepción. Invoca al constructor de la clase de excepción de la cual desea construir una instancia.

Declaración throw if (index >= 0 || index < size()) Ejemplo ArrayList<E>, para lanzar: public E get(int index){ if (index >= 0 || index < size()) return items[index]; else throw new IndexOutOfBoundsException(); }

Declaración throw String s= "Hola"; char c; try { c= s.charAt(10); } Para relanzar: String s= "Hola"; char c; try { c= s.charAt(10); } catch (IndexOutOfBoundsException e){ //hacer algo throw e; }

Declaración throws Se utiliza en la declaración de métodos que lanzan excepciones public class A { public int m() throws Exception{ ... throw new …; }

Declaración throws Ejemplo en ArrayList public E get(int index) throws IndexOutOfBoundsException { if (index >= 0 || index < size()) return items[index]; else throw new IndexOutOfBoundsException(); }

Constructores y Excepciones Un objeto no se considera construido has-ta que no se ha terminado de ejecutar su constructor. Un constructor puede lanzar una excep-ción. Es posible transmitir fuera del constructor información de fracasado. Esto puede ser peligroso en lenguajes que requieren la implementación de destructores y liberación explícita de memoria.

Jerarquías de excepciones Para crear una nueva clase de excepción se debe heredar de alguna de las clases de excepciones ya existentes. Como regla a seguir, el nombre de la excepción debe indicar el problema que ocurre.

Constructores de la Clase Exception public Exception() public Exception(String message) public Exception(String message, Throwable cause) public Exception(Throwable cause)

Jerarquías de excepciones Ejemplo: Modificar Rectangle (CP1), para garantizar que los métodos Rectangle.setSideA(float sideA() y Rectangle.setSideB(float sideB) retornen una excepción si el nuevo valor del lado es negativo.

Jerarquías de excepciones public class NegativeSideException extends Exception { //redefinir los constructores necesarios public ExceptionNegativeSide() { super(); } public ExceptionNegativeSide(String arg0) { super(arg0);

Solución public class Rectangle { … public void setSideA(int sideA) throws NegativeSideException { if (sideA > 0) this.sideA= sideA; else throw new NegativeSideException(“Lado A no puede ser negativo”) } … }

“El lado B no puede ser negativo” Solución public class Main { public static void main(String[] args) { Rectangle r= new Rectangle(10,10); try { r.sideA(2); r.sideB(-4); } catch (NegativeSideException e) { System.out.print(e.getMessage()); Mostrará: “El lado B no puede ser negativo”

Conclusiones Excepciones son una forma novedo-sa de manejar errores. Permite: Aislar el código de la lógica del negocio del código de tratamiento de errores. Este último queda atrapado en los bloques catch. Aumentar la claridad de todo el código.

Conclusiones Reducir tamaño final del código. Cuando el tratamiento de errores se hace dentro de los mismos algoritmos de solución, el código final crece aproximadamente en un 400%, mientras que con el manejo de excepciones se incrementa solo en un 200%.