JDBC metodo declarado com throws Exception sem finally
3 respostas
N
netojose
Olá
nesse metodo abaixo não tem o metodo finally, ao executar a Query caso venha da erro
a connection será fechada? ou nao?
finally
public Car getCarrId (int id) throws Exception{
Connection con = dbConn.obtainConnection();
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery("SELECT * FROM TB_carr WHERE id= "+id);
não.
Quando o erro ocorre o Java interrompe na hora a execução. Assim a conexão se mantem ativa.
[]'s
A
ACPF1986
Se der erro antes do con.close() acredito que a conexão não seja fechada.
Mas, eu costumo colocar meu .close() fora do try…catch. Não sei se é a melhor prática mas…
robinsonbsilva
Connectioncon=null;Statementstm=null;Statementstm=null;ResultSetrs==null;try{con=dbConn.obtainConnection();stm=con.createStatement();stm=con.createStatement();rs=stm.executeQuery("SELECT * FROM TB_carr WHERE id= "+id);rs.next();Carcar=getCar(rs);}catch(SQLExceptione){thrownewDAOException(e.getMessage());//TRATA ERRO}finally{ConnectionPool.closeAll(null,stm,rs);//FECHArs=null;stm=null;}publicstaticvoidcloseAll(Connectionconn){try{if(conn!=null){conn.close();}}catch(Exceptione){StringerrorMsg="Nao foi possivel fechar a conexao com o banco";DAOException.print(e,errorMsg);}}publicstaticvoidcloseAll(Connectionconn,Statementstmt){try{if(stmt!=null){stmt.close();}}catch(Exceptione){StringerrorMsg="Nao foi possivel fechar o Statement";DAOException.print(e,errorMsg);}closeAll(conn);}publicstaticvoidcloseAll(Connectionconn,Statementstmt,ResultSetrs){try{if(rs!=null){rs.close();}}catch(Exceptione){StringerrorMsg="Nao foi possivel fechar o Resultset";DAOException.print(e,errorMsg);}closeAll(conn,stmt);}