Como faço para usar o con.fecha(); para fechar a conexão? O problema é o seguinte:
O professor simulou uma abertura e fechamento de conexões com Conexao() e fecha() usando o try catch e finally. Porém:
- Se eu uso o
con.fechadentro dotry, oSystem.out.println("Fechando conexao")não aparece no console, e se eu uso embaixo, nofinally, dá um erro *"con cannot be resolved."
O que devo fazer para conseguir fechar a conexão?
Consegui contornar fazendo uma outra instancia Conexao con2 = new Conexao(); e usar essa instância embaixo, no finally, mas não sei se é uma má prática fazer isso.
Obrigado!
public class Conexao implements AutoCloseable {
public Conexao() {
System.out.println("Abrindo conexao");
throw new IllegalStateException();
}
public void leDados() {
System.out.println("Recebendo dados");
}
public void fecha() {
System.out.println("Fechando conexao");
}
@Override
public void close() throws Exception {
}
}
------------------------------------------------------------------------
public class TesteConexao {
public static void main(String[] args) {
Conexao conexao = null;
try(Conexao con = new Conexao() ) {
con.leDados();
con.fecha();
} catch(Exception ex) {
System.out.println("Exception pega");
}
}
}