OCP7 11 – Hilos (02) – Control de Errores Inesperados
17-02-2018 - Antonio Archilla
La clase Thread
cuenta con un mecanismo de control de errores para casos en que se produzca un final inesperado a la ejecución de éste.
A través del método setUncaughtExceptionHandler
de la clase Thread
es posible recoger la causa de esta finalización anómala dentro del hilo principal de la aplicación y actuar en consecuencia.
A continuación se añade un ejemplo que ilustra su funcionamiento:
// Resto del código
Thread t = new Thread(new Runnable()) {
@Override
public void run() {
// Código del thread que provoca
// una finalización anómala en su
// ejecución
}
});
t.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler(){
@Override
public void uncaughtException(Thread t, Throwable e) {
// Tratamiento del error producido en el Thread.
// Por ejemplo, se puede registrar un error o emprender
// una acción alternativa
}
});
// Inicialización de la ejecución del Thread.
// Gracias al Listenr del thread no es necesario supervisar la finalización
// del thread para tratar el error pudiendo seguir la ejecución del programa
// principal
t.start();
// Resto del código