Código de portabilidade do uso de temporizadores para o serviço de executores agendados

Estou tentando portar código usando java timers para usar scheduleexecutorservice

Tenho o seguinte caso de uso

class A {

    public boolean execute() {
         try {
              Timer t = new Timer();
              t.schedule (new ATimerTask(), period, delay);
         } catch (Exception e) {
              return false;
         }
    }

}


class B {

    public boolean execute() {
         try {
              Timer t = new Timer();
              t.schedule (new BTimerTask(), period, delay);
         } catch (Exception e) {
              return false;
         }
    }

}

Devo substituir as instâncias de timer na classe A e classe B por ScheduledExecutorService e transformar a classe ATimerTask e BTimerTask em uma classe Runnable, por exemplo,

class B {

    public boolean execute() {
         try {
              final ScheduledExecutorService scheduler = 
   Executors.newScheduledThreadPool(1);

              scheduler.scheduleWithFixedDelay (new BRunnnableTask(), period, delay);
         } catch (Exception e) {
              return false;
         }
    }

}

Está correto.

EDIT: Uma das principais motivações da portabilidade é que as exceções de tempo de execução lançadas no TimerTask matam esse segmento e ele não pode ser agendado mais. Eu quero evitar o caso, para que, mesmo que eu tenha uma exceção de tempo de execução, o thread continue executando e não par

questionAnswers(3)

yourAnswerToTheQuestion