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?
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
Curtir tópico
+ 0
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:
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.
Lembrando que só podemos adicionar no bloco de inicialização um objeto que implemente java.lang.AutoCloseable ou java.io.Closeable.
Um abraço.
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
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.
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
Clique aqui para fazer login e interagir na Comunidade :)