Tenho duas classes:
- A classe que implementa Runnable
- A classe Main, que starta a Thread
Quando ocorrer uma exceção dentro do método run(), enquanto a Thread é executada, preciso que a classe Main saiba que houve uma exceção na Thread e dê o tratamento devido.
A minha Thread:
public class MyThread implements Runnable(){
@Override
public void run(){
try{
//executa tal ação
} catch(Exception e){
//acontece uma exceção aqui
}
}
}
A classe que chama a Thread:
public class Main{
public void agoraVai(){
MyThread myThread = new MyThread();
Thread th = new Thread(myThread);
//gostaria que existisse algo do tipo
try{
th.start();
} catch(ExcecaoDentroDaThreadException e){
//executa tratamento
}
}
}
Sei que não posso fazer try/catch após executar uma Thread pq quando chamo start() o resto do código de Main é executado e a nossa Thread ganha emancipação e tem vida própria.
Mas, como trato em Main as exceções que ocorrem dentro da Thread?
A melhor dica até agora foi essa: http://www.guj.com.br/posts/list/50321.java#264645
Grato