Bom dia!
A minha classe TesteConexao não compila.
Eu verifiquei que no código do professor, que no catch é colocado somente o IllegalStateException.
Queria entender porque isso acontece?
Segue o Código:
public class Conexao implements AutoCloseable {
public Conexao() {
System.out.println("Abrindo conexao");
//throw new IllegalStateException();
}
public void leDados() {
System.out.println("Recebendo dados");
throw new IllegalStateException();
}
@Override
public void close() throws Exception {
System.out.println("Fechando conexao");
}
}
public class TesteConexao {
public static void main(String[] args) {
try(Conexao conexao = new Conexao()){ // erro de compilacao aqui
conexao.leDados(); // pede para add throws Execption no main
// ou add Exception no catch
}catch (IllegalStateException ex) {
System.out.println("Deu erro na conexao");
}
//------------------------------------------------
// Conexao con = null;
// try {
// con = new Conexao();
// con.leDados();
// } catch(IllegalStateException ex) {
// System.out.println("Deu erro na conexao");
// } finally {
// System.out.println("Finally");
// if (con != null){
// con.fecha();
// }
// }
}
}