1
resposta

[Sugestão] Não é try with resources

Olá, a Yasmin menciona que utilizará try with resources em determinado momento, mas na verdade se trata de um catch com 2 exceções. Segue o código mencionado: @Scheduled(cron = "0 53 11 * * *") public void envioEmailsAgendado(){ var estoqueZerado = relatorioService.infoEstoque(); var faturamentoObtido = relatorioService.faturamentoObtido();

    try {
            enviador.enviar(estoqueZerado.get(), faturamentoObtido.get());
    } catch (InterruptedException | ExecutionException e) {
            throw new RuntimeException(e);
    }
    System.out.println("Thread do agendamento: " + Thread.currentThread().getName());

}

1 resposta

Olá Paula! Como vai?

Você está correta. O trecho de código que você mencionou realmente não está utilizando o recurso de "try with resources". Na verdade, o que está sendo utilizado é um bloco try-catch para capturar exceções, especificamente InterruptedException e ExecutionException.

O "try with resources" é uma funcionalidade do Java que facilita o gerenciamento de recursos que precisam ser fechados após o uso, como InputStream ou OutputStream. Ele garante que o recurso será fechado automaticamente ao final do bloco try, mesmo que uma exceção ocorra. No seu código, como não há recursos que precisam ser fechados automaticamente, o "try with resources" não se aplica aqui.

Se a intenção era realmente usar "try with resources", seria necessário ter algum recurso que implementa a interface AutoCloseable, o que não é o caso nesse cenário.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!