Considerando o código abaixo, quando eu sei que a main irá chamar o método close?? Ou o close é chamado automaticamente? Não entendi mt bem isso... Pq repare que tivemos que chamar o método leDados, mas o close não.
public class Conexao implements AutoCloseable{
public Conexao() {
System.out.println("Abrindo conexao");
}
public void leDados() {
System.out.println("Recebendo dados");
throw new IllegalStateException();
}
@Override
public void close() {
System.out.println("Fechando conexão");
}
}
public class TesteConexao {
public static void main(String[] args) {
try (Conexao conexao = new Conexao()){
conexao.leDados();
} catch(IllegalStateException ex) {
System.out.println("Deu erro na conexao");
}
}
}