Por que não fechar a conexão dentro do 'finally'?
Se a conexão for aberta em um ponto e depois bater uma exception, ela não vai continuar aberta se o fechamento estiver dentro do try?
Ou talvez colocar o fechamento dentro do catch tb... mas aí ficaria com repetição de código, não?