Try, catch e finally

8 respostas
juloko666

Pessoal quando vou persistir alguma informação no banco sempre coloco as instruções dentro de try…catch. Será que posso encerrar a conexao e o ResultSet, por exeplo dentro do finally, já que ele é executado e alguer maneira?

OBS: Logicamente antes de fechar a conexao no finally e verifico se ele está fechada.

8 Respostas

A

Pode e deve.

Abraço,

Armando

ViniGodoy

Ou então, use o spring. Não só evita o try e catch, melhorando a legibilidade do código, como também implementa algumas boas práticas de BD que deixamos esquecidas.

Site oficial:

Alexandre_Vilas_Boas

juloko666:
Será que posso encerrar a conexao e o ResultSet, por exeplo dentro do finally, já que ele é executado e alguer maneira?

Humm, tenho minhas dúvidas…

Já ouvi alguns gurus dizendo que essa abordagem não é das melhores.

Vou ver se encontro algo concreto a esse respeito e te informo.

[]'s

clodoaldoaleixo

Eu aprendi assim também…encerrando tudo no finally, mas já ouvi falar de alguns frameworks que tem um tratamento diferente…enfim, vale uma pesquisa.

ViniGodoy

Você tem que usar um close() num finally. O problema é que o close também gera SQLException.

O código então fica mega poluído. Você tem que colocar um try…finally dentro de um try…catch. O try…finally garante que o close será dado, e o try…catch pega a SQLException.

Você pode apelar para uma framework de persistência como o Hibernate, ou por um outro que te ajude a lidar com isso, como o Spring. Como uso aplicação no Swing, tive que recorrer ao último e estou muito satisfeito com os resultados.

As classes do spring não lançam SQLException, lançam exceções Runtime no lugar. Elas também não exigem que você feche nada. Códigos de 20, 30 linhas ficam no máximo com 6 ou 7 linhas…

ystaile

Pow, eu acho que se uma coisa simples são uso de padroes ou framework pode colocar o close() no finally mesmo.

LPJava

pelo conhecimento que tenho, pode sim o bloco finally ele é executado independente então você poe la seu codigo dentro do bloco que ele será fechado mesmo se ocorrer uma exceção ou nao.

fmeyer

http://java.sun.com/docs/books/tutorial/essential/exceptions/finally.html

Criado 18 de dezembro de 2006
Ultima resposta 19 de dez. de 2006
Respostas 8
Participantes 8