Olá Pessoal
Estou com um problema!
Faço uma busca no banco de dados, e quando o “número da proposta” não é encontrado eu gostaria de exibir uma mensagem para o usario, como deve fazer?
Obrigado
Cristiano
Olá Pessoal
Estou com um problema!
Faço uma busca no banco de dados, e quando o “número da proposta” não é encontrado eu gostaria de exibir uma mensagem para o usario, como deve fazer?
Obrigado
Cristiano
Só fazer
catch( Exception e )
{
System.out.println( e );
}
Não te ajudou né? Que tal ser um pouco mais específico? 
O código é o seguinte:
class BtnBuscar implements ActionListener{ // Botão Buscar
public void actionPerformed(ActionEvent e){
String numero=c1.getText();
String query=“select * from Proposta”+
“where Número=’”+String.valueOf(numero)+"’";
try{
String url=“jdbc:odbc:BDProposta”;
String usuario="";
String senha="";
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
Connection con;
con=DriverManager.getConnection(url,usuario,senha);
Statement st=con.createStatement();
ResultSet rs=st.executeQuery(query);
while (rs.next()){
String numero2=rs.getString(“Número”);
String dataEntrada=rs.getString(“Data_de_Entrada”);
String valor=rs.getString(“Valor”);
String assunto=rs.getString(“Assunto”);
String responsavel=rs.getString(“Responsável”);
String prazo=rs.getString(“Prazo”);
String interessado=rs.getString(“Interessado”);
String situacao=rs.getString(“Situação”);
String dataContrato=rs.getString(“Data_de_Contratação”);
String numeroProcesso=rs.getString(“Número_do_Processo”);
String verba=rs.getString(“Verba”);
String andamento=rs.getString(“Andamento”);
c2.setText(numero2);c3.setText(dataEntrada);c4.setText(valor);
c5.setText(assunto);c6.setText(responsavel);c7.setText(prazo);
c8.setText(interessado);comboBox.setSelectedItem(situacao);
c9.setText(dataContrato);c10.setText(numeroProcesso);
c11.setText(verba);textArea.setText(andamento);
c1.setText("");
c1.requestFocus();
}
st.close();
con.close();
}
catch(Exception ex){ // Falta implementar corretamente
System.out.println(“Erro de conexao”);
}
}
}
Se você acha que é uma exceção que deve usar qual seria esta exceção?
Obrigado
Cristiano
JAMAIS faca isso:
catch(Exception ex){ // Falta implementar corretamente
System.out.println("Erro de conexao");
}
Fazendo dessa maneira, voce nao tem como saber o que deu errado. Troque esse pedaco de codigo para, por exemplo:
catch(Exception ex){ // Falta implementar corretamente
System.out.println("Erro:");
ex.printStrackTrace();
// ou, System.out.println("erro: " + ex);
}
Rafael
Obrigado pelas respostas
Mas continuo na mesma pois o java não pega erro algum no código, eu quero implementar algo para avisar ao usuario que o número do objeto proposta não foi encontrado no banco de dados.
Alguém poderia me dar o caminho das pedras.
Obrigado
Cristiano
A classe SQLException possue uma propriedade chamada errorCode, sendo que cada um dos códigos corresponde a um tipo de erro diferente. Procure no na documentação do driver que está usando, assim sabera retornar para o cliente o erro correto.
1 - Faça um
if(!rs.next()){
throw new SeiLaoOqueNaoEncotnradoException("Sei la o que nao foi encotnrado.");
}
else{
//codigo normal rs.getBlablabla()
}
2 - Não conecte no banco de dados do seu formulário
3 - Use objetos para representar as entidades do seu sistema, não string isoladas
[]s
Obrigado!
Mas não funcionou, você poderia ser mais claro.
Obrigado
Cristiano
rs.next retorna true se seu resultset possui um próximo registro. Como o cursor começa em zero, você precisa dar um .next() para ir para o primeiro registro.
Se não existir o primeiro registro, ele vai retornar false, logo sua rs veio vazia, você pdoe lançar uma exceção para o usuário.
Crie uma exceção customizada e envie.
[]s