Sie sind auf Seite 1von 5

EXCEPCIONES

Son

Mecanismo de control de errores en tiempo de ejecucin


Una forma de hacer que la aplicacin contine la ejecucin si se produce un error
Objetos
Lanzadas para que otra parte del cdigo las capture y las trate

Sirven para

Detectar situaciones inusuales en la ejecucin


Que el cdigo se vuelva ilegible, si se controlan todos los posibles errores
directamente

Jerarqua de excepciones

Cmo se codifica?

OJO

Se puede generar en un TRY ms de una excepcin gracias a que unas excepciones


heredan de otras.
Slo se puede hacer con excepciones dentro de la misma jerarqua
Sirve para tratar de manera comn varios tipos de excepciones distintos

Al tratamiento de una excepcin se le puede aadir al final un bloque finally que se


ejecuta siempre, se produzcan o no excepciones.
Se puede usar para cerrar ficheros, liberar recursos, etc.

Qu pasa cuando no se trata una excepcin?


Si una excepcin no se captura se propaga hacia el mtodo llamante, para que ste la trate.
Si no la trata, se sigue propagando hasta llegar al main.
Si en el main tampoco se trata, se aborta la ejecucin del programa.
LANZAR EXCEPCIONES
Un mtodo puede lanzar una excepcin utilizando la palabra reservada throws en la cabecera
del mtodo
public void miMetodo() throws ArithmeticException
Posteriormente, en el cdigo, se puede lanzar una excepcin usando la palabra reservada throw.
catch (IOException ioe)
{ throw ioe;

throw new NullPointerException(); }

CREAR NUEVAS EXCEPCIONES


Se pueden crear nuevas excepciones creando una nueva clase que herede de Exception
Se suele aadir un constructor por defecto y otro que acepta un String
Llamar al constructor de Exception desde el constructor de la nueva clase
Si hace falta, aadir atributos, otros constructores y otros mtodos

HILOS - THREAD
Es
Un flujo de ejecucin secuencial independiente dentro de un proceso.
Comparten
El espacio de direcciones, pero tienen su propio contador de programa y su propia pila de
ejecucin.
Ejemplo
Un navegador en ejecucin es un proceso y cada una de las ventanas de navegacin abiertas son
hilos independientes dentro del proceso.
Quin permite representar a los hilos de ejecucin?
La clase Thread.
Creacin de hilos con la clase Thread
Paso 1: Crear una clase que extienda la clase Thread.
Paso 2: Implementar el mtodo run(). Este mtodo es el cuerpo del hilo. El hilo muere al finalizar
run().

Arranque de un hilo
Paso 1: Crear una clase que lance los hilos
Paso 2: Invocar al operador new para crear los hilos.
Paso 3: Invocar al mtodo start() de cada hilo. Este mtodo arranca el hilo e invoca al mtodo
run().

CLASE THREAD

Ciclo de vida de un hilo

SINCRONIZACIN DE HILOS
Los hilos pueden utilizar objetos comunes y manipularlos de forma independiente.
El acceso a las regiones crticas se controla con los mtodos synchronized. Un mtodo
synchronized de un objeto slo puede ser ejecutado por un nico hilo en cada momento.
Tambin se pueden sincronizar variables.
El envo y recepcin de seales entre los hilos se realiza con los mtodos wait(), notify() y
notifyAll().
void wait() duerme al hilo hasta la llegada de un notify().
void notify() despierta a uno de los hilos que estaban esperando por el objeto.
void notifyAll() despierta a todos los hilos que estaban esperando por el objeto.
Ejemplo de sincronizacin

Das könnte Ihnen auch gefallen