Melhor estratégia para fechar conexões

6 respostas
victorgilc

Salve galera!

Qual a melhor estratégia para fecharmos recursos(ResultSet, Statements, Connections)
fecharmos no “finally” ou usarmos o “try-with-resources” do java 7?

Atenciosamente

Victor

6 Respostas

kicolobo

Se for usar o Java 7, o try with resources te economiza algumas linhas de código.
Se for com o finally, você tem a vantagem de ter código compatível com as versões anteriores ao Java 7.

Se for por compatibilidade, a segunda alternativa ganha. No entanto eu vou adorar ver as opiniões dos outros gujeiros sobre este assunto.
Boa pergunta!

renanreismartins

Concordo com o kico

se vc sabe que seu projeto vai rodar na versao 7, try with resources…

abrassss

victorgilc

Mas em termos de eficácia/desempenho? O try with-resources é melhor? tanto faz?

kicolobo

Oi Victor,

se bobear, o desempenho vai ser o mesmo.

O try with-resources simplesmente vai gerar automáticamente pra você o bloco finally dinâmicamente com base nos recursos que você estiver trabalhando.
Então, na prática, a não ser que você queria um controle sobre qual recurso ou não liberar, você não vai ter diferença alguma de performance.

victorgilc

Uhhmm entendi, obrigado ^^

E

Se puder, prefira o try with resources.

(Obviamente não posso recomendá-lo se você estiver escrevendo código para um WebSphere ou WebLogic da vida que já esteja instalado e só aceite código da versão 6 ou 5 do Java :slight_smile: )

É que ele gera um código bem mais correto e complexo que o try / finally que normalmente usamos.

Em termos de desempenho não faz diferença porque o desempenho pega na parte “não-excepcional” do seu código, não na parte de tratamento de exceções do seu código.

Além disso, deixa seu código mais limpo e conciso (sabe como é que é, só vale a pena ter um código muito grande quando você ganha por linha de código :slight_smile: ) - código muito grande tende a ter mais erros.

Criado 3 de setembro de 2012
Ultima resposta 3 de set. de 2012
Respostas 6
Participantes 4