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.fecha
dentro 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");
}
}
}