Try-with-resources ou Try/Catch finally

22/06/2017

0

Pessoal,

existe alguma vantagem de uma dessas opções em relação à outra?

Qual opção vocês utilizam quando estão implementando os métodos de um DAO? Try-with-resources ou Try/Catch finally?
Augusto Santos

Augusto Santos

Responder

Post mais votado

23/06/2017

Oi Augusto, tudo certo?

O TWR é usado quando você precisa que um recurso seja fechado quando o comando/escopo for finalizado. Digamos que você esteja realizando uma ação com um BufferedReader. Ao escolher esta forma:

try (BufferedReader br =
        new BufferedReader(new FileReader(path))) {
    return br.readLine();
}


Você delega aos mecanismos da linguagem a tarefa de encerrar o recurso. Já com finally você seria o agente responsável por esse fechamento, geralmente verificando a validade da inicialização.

BufferedReader br = new BufferedReader(new FileReader(path));
    try {
        return br.readLine();
    } finally {
        if (br != null) br.close();
    }


Lembrando que só podemos adicionar no bloco de inicialização um objeto que implemente java.lang.AutoCloseable ou java.io.Closeable.

Um abraço.

Estevão Dias

Estevão Dias
Responder

Mais Posts

23/06/2017

Marcio Souza

Try-with-resources é um recurso que surgiu no Java 7 e faz desnecessário o uso do bloco finally em um try/finally ou até mesmo em um try/catch/finally.
Mas só é possível quando utilizado no bloco finally um objeto que implemente a interface Closeable, que por sua vez estende a interface AutoCloseable.
Então, se estiver ok, não vejo problemas em não usar.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar