Pessoal,
O método abaixo não compila se eu excluir a linha do return null no catch(), porém o mesmo não acontece se lançar uma exceção no catch() como mostra o método seguinte. Por que isso acontece?
public ArrayList<BoEmpresa> BuscaTodasEmpresas() {
PreparedStatement ps = null;
Connection conn = this.conn;
ResultSet rs = null;
try{
ps = conn.prepareStatement("SELECT * FROM empresa");
rs = ps.executeQuery();
BoEmpresa empresa = new BoEmpresa();
ArrayList<BoEmpresa> listaDeEmpresas = new ArrayList<>();
while(rs.next()) {
empresa.setCodigo(rs.getInt(1));
empresa.setRazao(rs.getString(2));
empresa.setEmail(rs.getString(3));
empresa.setCnpj(rs.getString(4));
empresa.setSenha(rs.getString(5));
empresa.setPorte(rs.getString(6));
empresa.setNumEmpresados(rs.getInt(7));
empresa.setRamoAtuacao(rs.getString(8));
empresa.setValores(rs.getString(9));
listaDeEmpresas.add(empresa);
}
return listaDeEmpresas;
} catch(SQLException e) {
e.getMessage();
return null;
}
}
lançando uma exceção e sem retornar nulo.
public ArrayList<BoEmpresa> BuscaTodasEmpresas() throws EmpresaDAOException {
PreparedStatement ps = null;
Connection conn = this.conn;
ResultSet rs = null;
try{
ps = conn.prepareStatement("SELECT * FROM empresa");
rs = ps.executeQuery();
BoEmpresa empresa = new BoEmpresa();
ArrayList<BoEmpresa> listaDeEmpresas = new ArrayList<>();
while(rs.next()) {
empresa.setCodigo(rs.getInt(1));
empresa.setRazao(rs.getString(2));
empresa.setEmail(rs.getString(3));
empresa.setCnpj(rs.getString(4));
empresa.setSenha(rs.getString(5));
empresa.setPorte(rs.getString(6));
empresa.setNumEmpresados(rs.getInt(7));
empresa.setRamoAtuacao(rs.getString(8));
empresa.setValores(rs.getString(9));
listaDeEmpresas.add(empresa);
}
return listaDeEmpresas;
} catch(SQLException e) {
throw new EmpresaDAOException("Erro ao listar as empresas (" + e.getMessage() + ").");
}
}