Tema 4: Control del flujo de ejecución: Excepciones y Threads. Programación Orientada a Objetos. Marcos López Sanz
|
|
- Ángeles Velázquez Toro
- hace 7 años
- Vistas:
Transcripción
1 Tema 4: Control del flujo de ejecución: Excepciones y Threads Programación Orientada a Objetos Marcos López Sanz Máster en Informática Gráfica, Juegos y Realidad Virtual MARCOS LOPEZ SANZ Excepciones Def.: Problemas que ocurren durante la ejecución de un programa o aplicación En Java: Objeto que define una situación inusual o érronea y que son lanzadas por un programa o el entorno de ejecución Tipos: Excepciones: pueden ser capturadas y manejadas por el programa en ejecución Errores: representan situaciones irrecuperables y no deberían ser capturadas Formas de actuación frente a excepciones: A. Ignorarlas B. Tratarlas donde ocurren C. Tratarlas en otro punto del programa Propagación MARCOS LOPEZ SANZ 1
2 Tratamiento de excepciones: Opción A: Ignorar Si una excepción no se captura el programa termina ( ended abnormally ) Toda sentencia que aparece después del punto donde se produjo el problema no se ejecuta * Se suele mostrar un mensaje descriptivo de la excepción ocurrida: Nombre de la clase de excepción Mensaje descriptivo Pila de llamadas java.lang.arithmeticexception: / by zero at Ejemplo1.main(Ejemplo1.java:5) Método donde se produjo el error Última línea ejecutada (causa) Fichero que contiene la clase MARCOS LOPEZ SANZ Tratamiento de excepciones: Opción A: Ignorar public class Ejemplo1 public static void main() int i = 10/0; java.lang.arithmeticexception: / by zero at Ejemplo1.main(Ejemplo1.java:21) MARCOS LOPEZ SANZ 2
3 Tratamiento de excepciones: Opción B: Captura y manejo Sentencia try-catch-finally: try Delimita un bloque de sentencias que pueden dar lugar a un error (lanzar una excepción) catch (<claseexcepcion> objexc) Bloque en el que se define cómo debe tratarse la excepción Se pueden anidar varios tipos de excepciones (de la más concreta a la más general o por orden de preferencia de tratamiento) finally Bloque de código que siempre se ejecuta Se suele utilizar para continuar la ejecución estable de un programa MARCOS LOPEZ SANZ Tratamiento de excepciones: Opción B: Captura y manejo public class Ejemplo2 public static void main() int numerador = 5; int denominador = 0; try int resultado = numerador/denominador; System.out.println("Resultado: " + resultado); catch (ArithmeticException ex) System.out.println("Error!!!!!"); finally System.out.println("Esto siempre se ejecuta"); MARCOS LOPEZ SANZ 3
4 Tratamiento de excepciones: Opción B: Captura y manejo public class Ejemplo3 public static void main() int numerador = 5; int[] denominador = new int[2]; try denominador[0] = 0; int resultado = numerador/denominador[2]; System.out.println("Resultado: " + resultado); catch (ArithmeticException ex) System.out.println("Error aritmético!!!!!"); catch (Exception ex) System.out.println("Error general!!!!!"); finally System.out.println("Esto siempre se ejecuta"); MARCOS LOPEZ SANZ Tratamiento de excepciones: Opción C: Propagación Propagación: consiste en capturar la excepción externamente al método en el que se produce la excepción La excepción se propaga hasta que es capturada o hasta que llega al método main (equivalente a ignorarla) public class Ejemplo3 public Ejemplo3() public static void main() Ejemplo3 obj3 = new Ejemplo3(); obj3.metodo1(); MARCOS LOPEZ SANZ 4
5 Tratamiento de excepciones: Opción C: Propagación public void metodo1() //try this.metodo2(); // //catch (ArithmeticException ex) System.out.println("Error aritmético!!!!!"); // public void metodo2() this.metodo3(); public void metodo3() int error = 3/0; java.lang.arithmeticexception: / by zero at Ejemplo3.metodo3(Ejemplo3.java:18) at Ejemplo3.metodo2(Ejemplo3.java:14) at Ejemplo3.metodo1(Ejemplo3.java:7) at Ejemplo3.main(Ejemplo3.java:24) MARCOS LOPEZ SANZ Jerarquía de errores y excepciones (Incompleta) Object Throwable Error Exception LinkageError ClassNotFoundException AWTError NoSuchMethodException ThreadDeath RuntimeException VirtualMachineError ArithmeticException IndexOutOfBoundsException NullPointerException MARCOS LOPEZ SANZ 5
6 Clases Exception y Throwable Clase Exception (java.lang): constructores: Exception () Exception (String mensaje) Exception (String mensaje, Throwable causa) Exception (Throwable causa) Clase Throwable (java.lang): clase base de Error y Exception getcause(): devuelve un objeto Throwable que representa la excepción que lo lanzó getmessage(): String con una breve descripción de la excepción (o error) printstacktrace(): String con la traza de invocaciones actuales MARCOS LOPEZ SANZ Creación y lanzamiento de excepciones Para crear una excepción personalizada hay que crear una clase que herede de Exception: public class ExcepcionPropia extends Exception public ExcepcionPropia(String mensaje) super(mensaje); Lanzamiento de excepciones (propias o predefinidas) throw refobjetoexcepcion ExcepcionPropia fallo; fallo = new ExcepcionPropia( Esto es un error ); throw fallo; El resto de sentencias no se ejecutarán MARCOS LOPEZ SANZ 6
7 Tipos de excepciones Tipos de excepciones: Unchecked o en tiempo de ejecución: son aquellas producidas dentro del entorno de ejecución de Java (aritméticas, puntero a null, índice no válido, etc.) Checked o no dependientes de la ejecución: son aquellas cuya causa no depende directamente del entorno de ejecución (p.ej. errores de entrada/salida) Las excepciones no dependientes de la ejecución siempre hay que capturarlas o decir que el método lanza la excepción no controlada Cuando no se captura una excepción es posible hacer que el método en el que se produce lance una excepción determinada (checked o unchecked): public void metodo3() throws ArithmeticException int error = 3/0; Es posible que un método lance más de una excepción (se separan por comas) public void escribirarrayenfichero() throws IOException, ArrayIndexOutOfBoundsException MARCOS LOPEZ SANZ Excepciones más comunes Excepciones ArithmeticException: Errores de cálculo IndexOutOfBoundsException: Índices mal usados en arrays, strings o vectores ClassNotFoundException: clase no encontrada FileNotFoundException: fichero no encontrado InvalidParameterException: El argumento pasado no es válido NullPointerException: Referencia a un objeto vacío IOException: error de entrada/salida Errores: AbstractMethodError: intento de instanciar una clase abstracta InternalError: error interno del intérprete UnknownError: error desconocido OutOfMemoryError: la máquina virtual se ha quedado sin memoria MARCOS LOPEZ SANZ 7
8 Threads: introducción Def 1.: Camino seguido por un programa durante su ejecución Def 2.: Sección de código ejecutado independientemente de otros hilos de ejecución en un único programa Necesidad: realizar múltiples tareas simultáneamente para obtener un objetivo o resultado Concurrencia: ante la ejecución de diferentes hilos de ejecución existe un planificador (scheduler) dentro de la máquina virtual de Java que es quien selecciona la tarea a ejecutar en cada momento. La concurrencia en java se basa en threads o procesos ligeros. En otros lenguajes o sistemas, la concurrencia se basa en una replicación de datos y código en contextos diferentes, en Java son controlados por un proceso único: la máquina virtual de Java MARCOS LOPEZ SANZ Threads: ciclo de vida EN ESPERA Parado Bloqueado destroy() Cierre E/S MUERTO Thread.sleep() interrupt() Fin de sleep() Object.wait() notify() / notifyall() Bloqueo externo al thread Respuesta de E/S o liberación del bloqeo start() VIVO Ejecutable planificador yield() En ejecución destroy() Nuevo thread Fin de run() MARCOS LOPEZ SANZ 8
9 Threads: definición La definición de un thread siempre está asociada a una determinada clase Dos formas: Crear una clase que herede de Thread (java.lang.thread) Implementar el interfaz Runnable Ambas opciones de creación son equivalentes: Si se usa extends la clase no puede heredar de ninguna más pero sí implementar otros interfaces Si se usa implements, la clase puede heredar de otra clase e implementar otros interfaces Método heredado: run() Corresponde al main de un thread Es público, devuelve void y no admite argumentos No se permite que lance excepciones (throw) MARCOS LOPEZ SANZ Threads: definición (ejemplos) public class PruebaThread1 extends Thread public void run() public class PruebaThread2 implements Runnable Thread th; public void run() this.th = Thread.currentThread(); MARCOS LOPEZ SANZ 9
10 Estados de un thread: Nuevo Thread Para la creación de un nuevo thread hay que instanciar una clase que tenga las propiedades de Runnable: PruebaThread1 th1 = new PruebaThread1( primer thread ); Se trata de una instancia que no está en ejecución, es una referencia a un futuro hilo de ejecución Sólo admite los métodos start(): inicia la ejecución del código asociado al thread y pasa al estado ejecutable stop(): deprecated. No se recomienda su uso. Pasaría a estado muerto La invocación de cualquier otro método de la clase lanzaría la excepción IllegalThreadStateEsception MARCOS LOPEZ SANZ Estados de un thread: Ejecutable/En ejecución Una vez se ha creado la referencia al thread a ejecutar y se ha lanzado el método start() ocurre lo siguiente: Se reservan los recursos necesarios para la ejecución del thread Se añade el thread a la lista de procesos seleccionables por el planificador Se invoca el método run() definido en la clase del thread cuyas sentencias se ejecutan secuencialmente Estados: Ejecutable quiere decir que el thread está a la espera de que el planificador lo lleve a ejecución En ejecución quiere decir que se están ejecutando las sentencias del thread MARCOS LOPEZ SANZ 10
11 Estados de un thread: Ejecutable/En ejecución Admite los siguientes métodos: sleep(msec) de la clase Thread o wait(msec) de la clase Object: en ambos casos pasa a estado parado destroy()(no implementado): pasa a estado muerto yield(): si está en ejecución pasa a estar en estado ejecutable (pierde el control del procesador y tiene que esperar a que el planificador lo elija), al revés no tiene efecto También puede pasar a estado bloqueado: Esperando por una respuesta a una operación de Entrada/Salida Entrar en una condición de sincronización MARCOS LOPEZ SANZ Estados de un thread: Parado En este estado, el thread no puede realzar ninguna operación Origen y causa de evolución de estado wait() si alguien invoca el método notify() sobre el thread o notifyall() en general sleep() cuando termine el tiempo establecido en el parámetro o si se invoca interrupt() sobre el thread En ambos casos, al salir de este estado siempre se pasa a ejecutable MARCOS LOPEZ SANZ 11
12 Estados de un thread: Bloqueado Se entra en este estado cuando el thread está esperando por alguna condición que es externa a la máquina virtual Normalmente son condiciones de Entrada/Salida Evolución desde este estado: A ejecutable : cuando se obtiene la respuesta de la entrada/salida A muerto : cuando se invocan los métodos stop() (deprecated) o destroy() (no implementado) o bien algún otro thread cierra el canal de E/S por el que espera el thread bloqueado MARCOS LOPEZ SANZ Estados de un thread: Muerto Condiciones de llegada Desde cualquier estado al invocar stop() (deprecated) o destroy() (no implementado) Desde ejecutable/en ejecución : se llega al final del método run() MARCOS LOPEZ SANZ 12
13 Threads: Prioridades y programación de tareas La ejecución simultánea de varios threads es posible en máquinas monoprocesador por la existencia de un planificador que escoge el thread a ejecutar en cada momento Todo thread tiene una prioridad en función de la cual elige el planificador: MIN_PRIORITY (0), NORM_PRIORITY (5) y MAX_PRIORITY (10) La prioridad puede ser establecida con setpriority(int prioridad) Ante una misma prioridad se elige aleatoriamente Un thread puede dejar de estar en ejecución voluntariamente invocando el método yield() MARCOS LOPEZ SANZ Threads: Resumen de métodos principales Object: wait(): bloquea un thread indefinidamente notify(): desbloquea un thread parado con wait() notifyall(): desbloquea todos los threads Thread start(): comienza la ejecución de un thread yield(): pasa del estado en ejecución a estado ejecutable sleep(int msec): bloquea el thread los miliseg. indicados interrupt(): desbloquea un thread parado con sleep() isalive(): devuelve true si un thread está en estado ejecutable/en ejecución, parado o bloqueado. false en otro caso run(): método que contiene el conjunto de sentencias a ejecutar currentthread(): devuelve un objeto thread que representa al hilo de ejecución actual MARCOS LOPEZ SANZ 13
14 Sincronización entre threads Necesidad: Existencia de condiciones de carrera problemas en los cuales dos o más threads están leyendo o escribiendo datos compartidos y el resultado final depende de la planificación de ejecución Problemas de sincronización: resultados de ejecución inesperados (diferentes cada vez) MARCOS LOPEZ SANZ Problemas de sincronización: Ejemplo (clase Productor) public class Productor extends Thread ObjComun destino; public Productor (ObjComun objcompartido) this.destino = objcompartido; public void run() for (int i = 0; i < 10; i++) try System.out.println ( Productor pone:"+i); destino.put(i); sleep(10); catch (InterruptedException e) MARCOS LOPEZ SANZ 14
15 Problemas de sincronización: Ejemplo (clase Consumidor) public class Consumidor extends Thread ObjComun origen; public Consumidor (ObjComun objcompartido) this.origen = objcompartido; public void run() for (int i = 0; i < 10; i++) try System.out.println ("Consumidor quita:"+origen.get()); sleep(10); catch (InterruptedException e) MARCOS LOPEZ SANZ Problemas de sincronización: Ejemplo (clase ObjComun) public class ObjComun public int actual, ultimo = 0; public int[] arraycomun = -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1; public ObjComun() this.actual=0; public void put(int x) ultimo=actual; this.arraycomun[actual++]=x; public int get() return this.arraycomun[ultimo]; MARCOS LOPEZ SANZ 15
16 Problemas de sincronización: Ejemplo (clase principal) public class EjemploSinc public static void main() ObjComun o = new ObjComun(); Productor p = new Productor(o); Consumidor c = new Consumidor(o); p.start(); c.start(); MARCOS LOPEZ SANZ Consumidor quita: -1 Consumidor quita: -1 productor pone: 0 Consumidor quita: 0 productor pone: 1 Consumidor quita: 1 Consumidor quita: 1 productor pone: 2 Consumidor quita: 2 productor pone: 3 Consumidor quita: 3 productor pone: 4 Consumidor quita: 4 productor pone: 5 productor pone: 6 Consumidor quita: 6 productor pone: 7 Consumidor quita: 7 productor pone: 8 productor pone: 9 Sincronización y comunicación Solución: Los threads no deben acceder simultáneamente al objeto compartido hay que bloquear el acceso <visibilidad> synchronized <tipo><idmétodo>(<param.>) Mientras un thread ejecuta un método synchronized el resto de threads no puede acceder a ese objeto (estado bloqueado bloqueado por algo externo al thread) Entre varios threads colaboradores debe existir una comunicación uso de esperas (wait) y notificaciones (notify/notifyall) MARCOS LOPEZ SANZ 16
17 Threads: Comunicación y sincronización public synchronized int get() try while (disponible == false) wait(); catch (InterruptedException e) disponible = false; notifyall(); return this.arraycomun[ultimo]; public synchronized void put(int x) try while (disponible == true) wait(); catch (InterruptedException e) disponible = true; ultimo=actual; this.arraycomun[actual++]=x; notifyall(); MARCOS LOPEZ SANZ productor pone: 0 productor pone: 1 Consumidor quita: 0 Consumidor quita: 1 productor pone: 2 productor pone: 3 productor pone: 4 Consumidor quita: 2 Consumidor quita: 3 productor pone: 5 Consumidor quita: 4 Consumidor quita: 5 productor pone: 6 Consumidor quita: 6 productor pone: 7 Consumidor quita: 7 productor pone: 8 Consumidor quita: 8 productor pone: 9 Consumidor quita: 9 Threads: Miscelánea Diferencia entre wait() y sleep(): wait libera el bloqueo sobre el objeto, sleep no Nunca se puede hacer: objthread.run(); Deadlock: situación en la que varios threads se bloquean en espera de que el otro libere el recurso Why are Thread.stop, Thread.suspend, Thread.resume and Runtime.runFinalizersOnExit deprecated?: Grupos de threads: Ejemplo: ThreadGroup migrupo = new ThreadGroup( migrupodethreads ); Thread th1= new Thread(miGrupo, Thread 1 ); Permite agrupar threads para poder lanzarles mensajes a todos a la vez: migrupo.interrupt(); MARCOS LOPEZ SANZ 17
18 Threads: Excepciones asociadas a threads SecurityException: lanzada cuando no se puede lanzar un método sobre un thread determinado por no tener permisos sobre él InterruptedException: lanzada cuando se desbloquea un thread parado con sleep() IllegalThreadStateException: lanzada cuando se intenta lanzar start() sobre un thread ya inicializado MARCOS LOPEZ SANZ Ejercicio Implementar la clase ColaDeEnteros (capacidad máxima 500) en la cual los métodos poner() y quitar() están sincronizados. Crear 2 clases de acceso a la ColaDeEnteros. Los objetos de ambas clases se identifican por un número entero. Generador: Inserta elementos en la cola siempre que haya menos de 10 enteros y hasta que se llena. En caso contrario, espera. Impresora: Lee e imprime por pantalla los elementos de la cola siempre que haya elementos. Si no hay elementos, espera. Completará 150 iteraciones. Parte A: crear 1 objeto Generador y 1 objeto Impresora. Cada uno completará 100 iteraciones Parte B: crear 5 objetos Generador y 5 objetos Impresora. Cada uno completará 50 iteraciones. Los generadores comenzarán por el número que les identifique como generador x100 MARCOS LOPEZ SANZ 18
19 Bibliografía Java software solutions, foundations of program design (3rd edition). J. Lewis & W. Loftus. Ed. Addison-Wesley, Cap. 8 (pp ) Java and Object Orientation: an introduction. J. Hunt. Ed. Springer- Verlag, Cap. 25 (pp ) Java threads (2nd edition). S. Oaks & H. Wong. Ed. O Reilly, Big Java: programming and practice. C. Horstmann. Ed. John Wiley & Sons, Cap. 14 y Throwable.html Exception.html Error.html Thread.html MARCOS LOPEZ SANZ 19
Tema 6. Threads: programas multitarea
Tema 6. Threads: programas multitarea Procesos e hilos Creación de threads Ciclo de vida de un thread Sincronización Prioridades Grupos de threads Relación de métodos Ejemplo sincronización 1 Procesos
Más detallesPresentación. Programación I. Programación Orientada a Objetos. :: Prof. Yeniffer Peña
Presentación Programación Orientada a Objetos :: Prof. Yeniffer Peña Utiliza las excepciones java. Una excepción es una condición anormal que se produce en una porción de código durante su ejecución. Es
Más detallesArquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
Más detallesProgramación concurrente en Java
Diseño Y Aplicaciones de Sistemas Distribuidos Programación concurrente en Java Joan Vila DISCA / UPV Departament d Informàtica de Sistemes i Computadors Universitat Politècnica de València Threads en
Más detallesResumen Manejo de Excepciones
Resumen Manejo de Excepciones Excepción Excepción es un cierto tipo de error o una condición anormal que se ha producido durante la ejecución de un programa. El nombre de excepción viene del hecho de que,
Más detallesParte I: Programación en un lenguaje orientado a objetos
Parte I: Programación en un lenguaje orientado a objetos 1. Introducción a los lenguajes de programación 2. Datos y expresiones 3. Estructuras algorítmicas 4. Datos compuestos 5. Modularidad 6. Tratamiento
Más detallesGuía práctica de estudio 12: Hilos
: Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio 12: Objetivo: Implementar el concepto de multitarea utilizando
Más detallesUnidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo
Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo Hilo (theread) llamado también proceso ligero o subproceso, es la unidad de ejecución de un proceso y esta asociado con una secuencia
Más detallesLaboratorio I Java Threads (Silberschatz Galvin)
Laboratorio I Java Threads (Silberschatz Galvin) Un proceso es un programa ejecutandose dentro de su propio espacio de direcciones. Java es un sistema multiproceso, esto significa que soporta varios procesos
Más detallesFundamentos de Computadores y Lenguajes
Fundamentos de Computadores y Lenguajes 1. Elementos básicos de los lenguajes 2. Instrucciones de control 3. Tipos de datos 4. Métodos 5. Modularidad y Abstracción 6. Tratamiento de errores 7. Entrada/salida
Más detallesNormalmente, los programas son ejecutados de forma secuencial. Único flujo de control
Hilos BUAP Introducción Normalmente, los programas son ejecutados de forma secuencial Único flujo de control Un programa con un único flujo de control, ejecuta sólo una tarea (hilo) Dr. Ivan Olmos 2 Introducción
Más detallesTEMA 8. Excepciones en Java. Curso de Java. Manejo de Excepciones
TEMA 8 Excepciones en Java Manejo de Excepciones Cuando un programa Java viola las restricciones semánticas del lenguaje (se produce un error), la máquina virtual Java comunica este hecho al programa mediante
Más detallesProgramación Concurrente en Java: Threads. Ejemplos de programación concurrente. Luis Fernando Llana Díaz. 24 de abril de 2008
Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid de abril de 00 Ejemplos de programación concurrente En un sistema operativo, diversos programas compiten por los recursos
Más detallesUPM Concurrencia en Java
UPM Concurrencia en Java Juan Antonio de la Puente DIT/UPM Hebras (threads) Una hebra es un objeto de una subclase de java.lang.thread o una implementación de la interfaz Runnable El código que ejecuta
Más detalles1. Fundamentos. Existen dos tipos distintos de multitarea: BASADA EN PROCESOS
Hilos 1. Fundamentos. Los procesadores y los Sistemas Operativos modernos permiten la multitarea, es decir, la realización simultánea de dos o más actividades. En la realidad, un ordenador con una sola
Más detallesdit Programación concurrente Sincronización condicional UPM
20151028 dit UPM Programación concurrente Sincronización condicional Juan Antonio de la Puente Algunos derechos reservados. Este documento se distribuye bajo licencia Crea9ve Commons
Más detallesTema 4. Excepciones en Java
Programación en Java Tema 4. Excepciones en Java Luis Rodríguez Baena Facultad de Informática Excepciones (I) Permiten la captura de errores en tiempo de ejecución. El control de excepciones permite extraer
Más detallesExcepciones. Una excepción es una situación anómala a la que llega la ejecución de un programa
Excepciones Una excepción es una situación anómala a la que llega la ejecución de un programa Excepciones Introducción Una máxima en el desarrollo de software dicta que el 80 % del esfuerzo (en tiempo
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta Excepciones... 5 Excepciones de uso frecuente... 8 Excepciones no comprobadas... 13 Excepciones comprobadas... 14 La clase Runtime Exception...
Más detallesTema 12: Programación multihilo
Tema 12: Programación multihilo Antonio J. Sierra Índice 1. Modelo de hilo en Java. 2. El hilo principal. 3. Creación de un hilo. 4. Creación de múltiples hilos. Prioridades. 5. Comunicación entre hilos.
Más detallesHOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA
Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2008/2009 Nombre:... Fecha: / 01 / 2009 HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA Esta hoja de ejercicios nos servirá
Más detallesTEMA 8. Agenda. Excepciones
TEMA 8 Excepciones V1.0 28/05/06 Manuel Pereira González Agenda 1 Introducción Mecanismo para el control y gestión de errores basado en objetos llamados Excepciones Una Excepción es una condición anormal
Más detallesProgramación concurrente Hebras
20151021 dit UPM Programación concurrente Hebras Juan Antonio de la Puente Algunos derechos reservados. Este documento se distribuye bajo licencia Crea9ve Commons Reconocimiento-NoComercial-Compar9rIgual
Más detallesExcepciones. Excepciones
Excepciones FJP Unidad 12 Excepciones Una excepción es la representación de una condición de error o cualquier situación no esperada en el resultado de un método. Son instancias de subclases de la clase
Más detallesManejo de Excepciones
Manejo de Excepciones M. Consuelo Franky Julio Carreño Pontificia Universidad Javeriana 1 Temario Captura de excepciones Excepciones estándares Cómo provocar una excepción Cómo definir nuevas excepciones
Más detallesExcepciones. Gonzalo Méndez - Dpto. Ingeniería de Software e Inteligencia Artificial. Excepciones
Programación Orientada a Objetos en Java Curso 2006-2007 Tema 6 Excepciones Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Qué son? Excepciones
Más detallesEjecución de hebras. En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura).
Ejecución de hebras En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura). Hebras vs. Procesos Los cambios de contexto son más costosos en
Más detallesProcesamiento paralelo con hilos de Java
Procesamiento paralelo con hilos de Java Tabla de contenidos 1. Soporte para hilos en Java... 1 2. Creación y control de un hilo... 2 2.1. Métodos de creación de un hilo... 2 2.2. Control de hilos mediante
Más detallesFormato para prácticas de laboratorio
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE DE UNIDAD DE APRENDIZAJE NOMBRE DE LA UNIDAD DE APRENDIZAJE
Más detallesUso de excepciones en Java
Uso de excepciones en Java En Java, cuando se produce un error en un método, se lanza un objeto Throwable. Cualquier método que haya llamado al método puede capturar la excepción y tomar las medidas que
Más detallesProgramación Orientada a Eventos
Programación Orientada a Eventos Técnicas de Programación Santiago Pavón V:2012.03.13 Programas Secuénciales El flujo de ejecución del programa sigue la secuencia de sentencias que lo forman. El estado
Más detallesTema 3. Tratamiento de Excepciones
Tema 3. Tratamiento de Excepciones Dpto. Lenguajes y Ciencias de la Computación. E.T.S.I. Informática. Universidad de Málaga Programación Orientada a Objetos Dpto. Lenguajes y Ciencias de la Computación.
Más detallesProgramación orientada a objetos. Capítulo 12 Manejo de errores
Programación orientada a objetos Capítulo 12 Manejo de errores Conceptos Programación a la defensiva Anticiparse a lo que podría ir mal Lanzamiento y tratamiento de excepciones Aserciones Causas de situaciones
Más detallesThreads LSUB. 30 de marzo de 2016 GSYC
Threads LSUB GSYC 30 de marzo de 2016 (cc) 2015 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada
Más detallesProgramación Concurrente en Java: Threads
Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid 7 de mayo de 007 Ejemplos de programación concurrente En un sistema operativo, diversos programas compiten por los
Más detallesTema 5 Corrección y Robustez Excepciones en Java
Tema 5 Corrección y Robustez Excepciones en Java Parte II: Excepciones en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Introducción Excepciones comprobadas Caso de estudio Tratamiento
Más detallesDiseño de tipos Igualdad, representación, código, copia y relación de orden
Práctica 4 Diseño de tipos Igualdad, representación, código, copia y relación de orden Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.1 Índice Gestión de excepciones
Más detallesJava Threads. Sistemas Distribuidos Rodrigo Santamaría
Java Threads Sistemas Distribuidos Rodrigo Santamaría Java Threads Hilos Sincronización Ejercicios FAQ 2 3 Hilos Un hilo (Thread) es un proceso en ejecución dentro de un programa java main Thread t t.start()
Más detallesThreads o Hilos. Un thread en JAVA comienza como una instancia de java.lang.thread antes de convertirse en un hilo de ejecución.
Threads o Hilos Los hilos son otra forma de crear la posibilidad de concurrencia de actividades; sin embargo, la gran diferencia es que los hilos comparten el código y el acceso a los datos. En cierta
Más detallesEjemplo. class SiNoThread extends Thread { private String SiNo; static int Contador = 0; public SiNoThread(String s) { super(); SiNo = s; }
Qué son los threads? Todos los programadores conocen lo que es un proceso, la mayoría diría que es un programa en ejecución: tiene un principio, una secuencia de instrucciones y tiene un final. Un thread
Más detalles2. Indica cuál de las siguientes afirmaciones es cierta:
Nombre:. Indica cuál de las siguientes afirmaciones es cierta: El diseño de un programa procedural está guiado por la división en tareas a realizar, mientras que el diseño orientado a objetos está dirigido
Más detallesConsiste en asumir que el usuario podrá usar de forma incorrecta y por tanto el programador deberá contemplar esos errores.
MANEJO DE ERRORES 1 Consiste en asumir que el usuario podrá usar de forma incorrecta y por tanto el programador deberá contemplar esos errores. Uno de los puntos más vulnerables son los parámetros que
Más detallesConcurrencia. Primitivas IPC con bloqueo
Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región
Más detallesSesión 9. TEMA 11 Clases abstractas. Manejo de errores y excepciones
Sesión 9. TEMA 11 Clases abstractas. Manejo de errores y excepciones Fundamentos de Informática José Jaime Noguera Noguera 6 de mayo de 2018 Contenidos 1 Introducción 2 Clases abstractas 3 Errores y excepciones
Más detallesConcurrencia en Java
Concurrencia en Java Herramientas proporcionadas por Java La Máquina Virtual (JVM) Pedro Pablo Gómez Martín La clase Thread Clase principal con la que conseguir concurrencia. La llamada a su método start()
Más detallesUD 4 GESTIÓN DE ERRORES. Pedro J. Ponce de León. Versión
UD 4 GESTIÓN DE ERRORES Pedro J. Ponce de León Versión 20111005 Gestión Errores Objetivos Saber utilizar las sentencias de control de excepciones para observar, indicar y manejar excepciones, respectivamente.
Más detallesGuía práctica de estudio 10: Excepciones y errores
Página 152/208 Guía práctica de estudio 10: Excepciones y errores Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena 152 Objetivo: Código:
Más detallesJava y JVM: programación concurrente. Adolfo López Díaz
Java y JVM: programación concurrente Adolfo López Díaz JVM Máquina virtual Ambiente de programación virtualizado Permite la ejecución de programas Java ejecutables multiplataforma Programación concurrente
Más detallesCAPÍTULO 4: EXCEPCIONES EN JAVA
PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA CAPÍTULO 4: EXCEPCIONES EN JAVA 1 CONTENIDOS TEMA 4: Excepciones en Java. 4.1 INTRODUCCIÓN 4.2 MANEJO DE EXCEPCIONES EN JAVA 4.3 TIPOS DE EXCEPCIONES 4.3.1 Excepciones
Más detallesProgramación concurrente en Java. Breve introducción. Miguel Ángel LATRE Dept. de Informática e Ingeniería de Sistemas
Programación concurrente en Java. Breve introducción Miguel Ángel LATRE Dept. de Informática e Ingeniería de Sistemas Concurrencia en Java Hilos de ejecución Clase Thread e interfaz Runnable Pausas Interrupciones
Más detallesApuntes de Java. Tema 6: Excepciones. Uploaded by Ingteleco
Apuntes de Java Tema 6: Excepciones Uploaded by Ingteleco http://ingteleco.webcindario.com ingtelecoweb@hotmail.com La dirección URL puede sufrir modificaciones en el futuro. Si no funciona contacta por
Más detallesPrácticas de Programación
Prácticas de Programación Tema 1. Introducción al análisis y diseño de programas Tema 2. Clases y objetos Tema 3. Herencia y Polimorfismo Tema 5. Aspectos avanzados de los tipos de datos Tema 6. Modularidad
Más detallesEXCLUSIÓN MUTUA ENTRE HILOS. TEMA 5: Control de la Concurrencia en Java (API Estándar) Sintaxis para Bloques de Código Sincronizado
TEMA 5: Control de la Concurrencia en Java (API Estándar) CONTENIDO Exclusión Mutua con código synchronized. Exclusión Mutua con métodos synchronized. Protocolos de Control de la Exclusión Mutua. Interbloqueos
Más detallesProgramación Concurrente Recopilación de teoría referente a la materia
UNIVERSIDAD AMERICANA Programación Concurrente Recopilación de teoría referente a la materia Ing. Luis Müller Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente, a
Más detallesLenguaje Java. Sesión 3: Tratamiento de errores. Experto Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles
Lenguaje Java Sesión 3: Tratamiento de errores 2012-2013 Depto. Ciencia de la Computación e IA Índice Excepciones Captura de excepciones Propagación de excepciones Nested exceptions Errores en tiempo de
Más detallesApuntes de Java. Tema 10: Threads. Uploaded by Ingteleco
Apuntes de Java Tema 10: Threads Uploaded by Ingteleco http://ingteleco.webcindario.com ingtelecoweb@hotmail.com La dirección URL puede sufrir modificaciones en el futuro. Si no funciona contacta por email
Más detallesProgramación Orientada a Objetos (Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información - UNED)
Examen de Ejemplo Programación Orientada a Objetos (Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información - UNED) Parte Teórica (2,5 puntos). La respuesta correcta se indica
Más detallesGuillermo Román Díez
Concurrencia Creación de Procesos en Java Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Creación de Procesos en Java 1/18 Concurrencia
Más detallesProgramación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
7 - Excepciones en Java Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas Introducción. Las excepciones en Java están destinadas, al igual que en el resto de los lenguajes
Más detallesConcurrencia Monitores. Guillermo Román Díez
Concurrencia Monitores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Monitores 1/25 Recursos Compartidos Pregunta La especificación de
Más detallesMódulo 11: MANEJO DE EXCEPCIONES 11-1
Módulo 11: MANEJO DE EXCEPCIONES 11-1 SUMARIO MANEJO DE EXCEPCIONES 1 SUMARIO 2 11.1. INTRODUCCIÓN 3 11.1.1. Tratamiento de Errores vs. Tratamiento de Excepciones 3 11.1.2. Qué ocurre cuando se produce
Más detallesProgramación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Más detallesUniversidad Autónoma de Baja California Facultad de Ingeniería Apuntes de Programación Orientada a Objetos I
Hilos Universidad Autónoma de Baja California Hasta el momento los programas que se han estado manejando en el curso han sido secuenciales. Esto es, inician en un punto y continuan su ejecución de manera
Más detallesMultienhebrado en Java Un toque de sincronización Transporte en Java Ejemplo conjunto
Java y multiprogramación sobre red Sistemas Distribuidos ITInformática (UVA) César Llamas Bello 2003 Índice Multienhebrado en Java Un toque de sincronización Transporte en Java Ejemplo conjunto 26/02/2003
Más detallesThreads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.
Threads Un thread es un flujo de control secuencial dentro de un programa. A los threads también se los conoce como procesos livianos ó contextos de ejecución. Un thread es similar a un programa secuencial:
Más detallesBENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN
BENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACION CONCURRENTE PARALELA Y PRACTICA 3 (PARTE 1 Y 2) HILOS POSIX NOMBRE:
Más detallesProgramación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Más detallesJava: control de excepciones
Java: control de excepciones Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Introducción v Una excepción es un evento que ocurre
Más detallesPROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }
PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)
Más detallesUnidad 3 Sistemas con memoria común
Unidad 3 Sistemas con memoria común Definiciones Por concurrencia se entiende la existencia de varias actividades simultáneas o paralelas. La concurrencia de procesos puede verse como la ejecución simultánea
Más detallesProgramación concurrente
Programación concurrente Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Programación concurrente
Más detallesProgramación Concurrente en Java
Hebras y monitores Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid 21 de marzo de 2006 Threads Extendiendo la clase java.lang.thread. public class PrThread extends
Más detallesUNIDAD III.- Programación Concurrente
UNIDAD III.- Programación Concurrente Sincronización Todo thread tiene una prioridad. Un thread hereda su prioridad, cuyo valor está entre 1 y 10 La prioridad puede modificarse con los métodos: setpriority()
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Sea una aplicación Java donde todas las clases están compiladas y empaquetas en un solo fichero JAR (programa.jar). Qué sería necesario para conseguir ejecutar
Más detalles7. Otras sentencias Sentencia break. 84 A. García-Beltrán y J.M. Arranz
84 A. García-Beltrán y J.M. Arranz 7. Otras sentencias Objetivos: a) Describir el funcionamiento de las otras sentencias de control (break, continue y try-catch) b) Interpretar el resultado de una secuencia
Más detallesProgramación Orientada a Objetos en C#.NET CAPÍTULO 8 EXCEPCIONES. Ing. Bruno López Takeyas, M.C.
CAPÍTULO 8 EXCEPCIONES 2 http://www.itnuevolaredo.edu.mx/takeyas 1 Preguntas detonadoras Cómo se controlan los posibles errores que ocurran durante la ejecución de una aplicación? Un programador, puede
Más detallesfundamentos de programación (unidad 7) herencia y relaciones entre clases
fundamentos de programación (unidad 7) herencia y relaciones entre clases Para ver una copia completa de la licencia, acudir a la dirección http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es
Más detallesTema 14: Excepciones
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
Más detallesBENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Y PARALELA PRACTICA 8 MONITORES BASADOS EN SEMÁFOROS
Más detallesConcurrencia en Android LSUB, GYSC, URJC
Concurrencia en Android LSUB, GYSC, URJC Repaso de concurrencia en Java Crear un thread Instanciar un Thread, con el método run sobreescrito Intanciar un objeto que cumpla el interfaz Runnable y pasárselo
Más detallesSoluciones al Examen de Fundamentos de Computadores y Lenguajes
Soluciones al Examen de Fundamentos de Computadores y Lenguajes Cuestiones (5 cuestiones, 5 puntos en total) Examen Parcial. Junio 2005 1) Escribir una clase con un atributo privado que sea un array de
Más detallesSi bien hay gran cantidad de excepciones, todas derivan de la clase Exception, además de las excepciones ya manejadas, se pueden crear propias.
Práctica No. 6. Manejo de Excepciones Java permite el manejo de excepciones, esto permite que cuando ocurra algún error en tiempo de ejecución, se pueda evitar que el programa finalice de manera incorrecta.
Más detallesFundamentos de Programación
Fundamentos de Programación Excep5on errores en 5empo de ejecución 1.12.2009 José A. Mañas Dpto. de Ingeniería de Sistemas Telemá@cos hcp://www.lab.dit.upm.es/~fprg/ excepciones una
Más detallesJava: Programación Multithread
Qué es un thread? Java: Programación Multithread Hasta el momento hemos desarrollado programas secuenciales con un único thread: en cualquier instante durante la ejecución de un programa hay un único punto
Más detallesColas. 5.1 Implementación
Capítulo 5 Colas Las colas al igual que las pilas son un tipo especial de listas en las cuales los elementos se insertan por un lado y se eliminan por el otro. Es decir se sacan en el mismo orden en que
Más detallesCAPÍTULO 2. PROCESOS VS. HILOS
CAPÍTULO 2. PROCESOS VS. HILOS El objetivo de este capítulo es el de discutir con un poco más de profundidad todo lo relacionado con el concepto de proceso que sea relevante para el estudio de la programación
Más detallesTEMA 5: Control de la Concurrencia en Java (API Estándar)
TEMA 5: Control de la Concurrencia en Java (API Estándar) CONTENIDO Exclusión Mutua con código synchronized. Exclusión Mutua con métodos synchronized. Protocolos de Control de la Exclusión Mutua. Interbloqueos
Más detallesINF 473 Desarrollo de Aplicaciones en Java
INF 473 Desarrollo de Aplicaciones en Java Sección V Otras características de Java Prof. José Miguel Rubio jose.rubio.l@ucv.cl jrubio@inf.ucv.cl PUCV Marzo 2008 1 Paquetes Conjunto de clases definidas
Más detallesBenemérita Universidad Autónoma del Estado de Puebla
Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Practica de Laboratorio No. 2 Profr: María del Carmen Cerón Garnica Alumno: Roberto
Más detallesCAPÍTULO 3. PROCESOS VS. HILOS
CAPÍTULO 3. PROCESOS VS. HILOS 3.1 Primitivas de sincronización en Java Java no tiene semáforos como primitivas de sincronización. Sin embargo, proporciona otras primitivas diferentes con las cuales sí
Más detallesdit UPM Tema 2: Concurrencia /threads (java) Análisis y diseño de software José A. Mañas
Análisis y diseño de software dit UPM Tema 2: Concurrencia /threads (java) José A. Mañas 11.3.2018 referencias The Java tutorials: Concurrency Oracle Java Threads Scott Oaks & Henry Wong O'Reilly Media;
Más detallesPrimitivas de Sincronización
Primitivas de Sincronización JUAN CARLOS CONDE RAMÍREZ DISTRIBUTED COMPUTING Introducción Todas las soluciones previas al problema de mutex fueron un desperdicio de algún modo: Si un proceso es incapaz
Más detallesAsignatura. Taller de Computación VI. Módulo VI Threads
Asignatura Módulo VI Threads Elaboración Hugo Sanoguera, Fabián Gentile Este material pertenece a la materia, de la Carrera de Analista de Sistemas de Computación del INSTITUTO DE TECNOLOGÍA ORT. Todos
Más detallesProgramación en Java. Instructor:
Instructor: Lección 5: Manejo de Excepciones 1. Creando Excepciones 2. El estatuto throw 3. La capsula throws 4. Try, catch y finally 5. Cuando usar excepciones Excepciones Una excepción es un problema
Más detallesProgramación orientada a objetos. Resumen de Temas Unidad 5: Herencia
Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona
Más detallesPrueba objetiva 2 - Clave a
Apellidos: Nombre: Matrícula: Normas Prueba objetiva 2 - Clave a Concurrencia 2010-2011 - Primer semestre Lenguajes, Sistemas Informáticos e Ingeniería de Software Este es un cuestionario que consta de
Más detallesExcepciones e hilos. Acceso a la red - Ejercicios
Excepciones e hilos. Acceso a la red - Ejercicios Índice 1 Captura de excepciones (*)... 2 2 Lanzamiento de excepciones...2 3 Chat para el móvil... 3 1. Captura de excepciones (*) En el proyecto java-excepciones
Más detallesFederico Peinado www.federicopeinado.es
Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es
Más detalles2. Tratamiento de objetos con JAVA
2. Tratamiento de objetos con JAVA David Contreras Bárcena (ETSI) - Comillas 71 2.1 Ciclo de Vida de los Objetos Los objetos tienen un tiempo de vida y consumen recursos durante el mismo. Cuando un objeto
Más detalles