1
resposta

Excessao de Thread

Caso eu tenha alguma exceção

public Class TestThreads{
public static void main(String[] args) {
        ExecutorService poll = Executors.newCachedThreadPool(new RodarThreads());

             poll.execute(new Request());
            }
}
public Class Request implements Runnable{
@Override
    public void run() {


                for(int i = 0 ; i <= 10 ; i++) {
                BuscaInformacoes(i);
}
}

`

        public class TratarThread implements UncaughtExceptionHandler {

@Override
public void uncaughtException(Thread t, Throwable e) {

    System.out.println("Problema nessa Thread aqui:" + t.getStackTrace()+ e.getMessage() + e.getCause());

        }`

em uma das Threads e trato ela, como posso fazer com que ela rode novamente aquele for? pois quando acontece algum erro eu trato essa Thread, e automaticamente ela se finaliza e o programa acaba e o for nao é rodado mais.

1 resposta

Voce pode usar o bloco try/catch, e ao capturar a exceção chamar novamente o método. Criando um contador e incrementando ele no catch vc pode sair do loop depois de x tentativas para não ficar rodando indefinidamente caso a exceção seja sempre lançada.