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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar