Personalizar mensagem de erro
Colegas, com a ajuda aqui do fórum usando o método abaixo, consegui jogar a mensagem do banco de dados na tela (vide imagem):
No entanto para o usuário a mensagem aparece como na figura abaixo:
Como faço para alterar o método acima e exibir a mensagem:
"Usuário sem permissão para realizar a operação! Contate o administrador do sistema."
ao invés da mensagem que vem do banco de dados conforme imagem. Muito obrigado desde já.
public void addFornecedor(Fornecedor frn){ try { String sql = "{ CALL SP_IAD_FORNECEDOR(?,?,?,?,?,?,?,?,?,?,?,?) }"; executePrepered(sql,frn.getIdforn(),frn.getNome(),frn.getEndereco(),frn.getNumero(),frn.getComplemento(),frn.getBairro(), frn.getCidade(),frn.getInscEstadual(),frn.getTelefone(),frn.getEmail(),frn.getUsuario(),frn.getOpr()); } catch(Exception e) { JOptionPane.showConfirmDialog(null, e,"Mensagem de teste", 2, 1); } }
No entanto para o usuário a mensagem aparece como na figura abaixo:
Como faço para alterar o método acima e exibir a mensagem:
"Usuário sem permissão para realizar a operação! Contate o administrador do sistema."
ao invés da mensagem que vem do banco de dados conforme imagem. Muito obrigado desde já.
Nilo Souza
Curtidas 0
Respostas
Davi Costa
02/07/2011
Vc tem a opção de passdar uma String ao invés da exception:
Att Davi
public void addFornecedor(Fornecedor frn){ try { String sql = "{ CALL SP_IAD_FORNECEDOR(?,?,?,?,?,?,?,?,?,?,?,?) }";
executePrepered(sql,frn.getIdforn(),frn.getNome(),frn.getEndereco(),frn.getNumero(),frn.getComplemento(),frn.getBairro(), frn.getCidade(),frn.getInscEstadual(),frn.getTelefone(),frn.getEmail(),frn.getUsuario(),frn.getOpr()); } catch(Exception e) { JOptionPane.showConfirmDialog(null, "Sua mensagem validação","Mensagem de teste", 2, 1); } }
Att Davi
GOSTEI 0
Nilo Souza
02/07/2011
Deu certo, mas o joption pane não aceita o ícone correto. Queria colocar o a letra (i) para personalizar a mensagem.
GOSTEI 0
Davi Costa
02/07/2011
Teste com esse então:
Veja esses links tb:
http://download.oracle.com/javase/tutorial/uiswing/components/dialog.html
http://download.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html
Att Davi
JOptionPane.showMessageDialog(null,"Sua mensagem validação","Mensagem de teste",JOptionPane.ERROR_MESSAGE);
Veja esses links tb:
http://download.oracle.com/javase/tutorial/uiswing/components/dialog.html
http://download.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html
Att Davi
GOSTEI 0
Nilo Souza
02/07/2011
Colega, outra coisa.
Teria como pegar a mensagem do erro abaixo:
e tratar-la pelo numero do erro Exemplo
if (335544517){
Usuario não tem permissão para Incluir, alterar ou excluir
else if (yyyyyyyyyy)
Usuario sem premissão y coisa
else if(xxxxxxxxx)
Usuario sem permissao para x coisa.
else
}
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544517. exception 1 Error_Acess
GOSTEI 0
Nilo Souza
02/07/2011
Colega, outra coisa.
Teria como pegar a mensagem do erro abaixo:
e tratar-la pelo numero do erro Exemplo
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544517. exception 1 Error_Acess
if (335544517){
Usuario não tem permissão para Incluir, alterar ou excluir
else if (yyyyyyyyyy)
Usuario sem premissão y coisa
else if(xxxxxxxxx)
Usuario sem permissao para x coisa.
else
mensagem do sistema.
}
GOSTEI 0
Davi Costa
02/07/2011
Joga esse valor numa String e trata do jeito que vc quizer e passa esse String que vc tratou no JOptionPane
att Davi
att Davi
GOSTEI 0
Nilo Souza
02/07/2011
mas qual valor exatamente eu tenho que pegar para ele reconhecer que esta vindo a excessao do banco de dados.
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544517. exception 1 Error_Acess
GOSTEI 0
Davi Costa
02/07/2011
No try/catch coloca acma de Exceptionum atch com SQLException ou FBSQLException.
Att Davi
Att Davi
GOSTEI 0
Nilo Souza
02/07/2011
Devi, não entendi! Ficou meio confusa a explicação. Pode ilustrar?
GOSTEI 0
Davi Costa
02/07/2011
try{}
catch(FBSQLExceptionfb){//sua msg de validação}
catch(SQLException sq){//sua msg de validação}
catch(Exception ex){//sua msg de validação}
att Davi
catch(FBSQLExceptionfb){//sua msg de validação}
catch(SQLException sq){//sua msg de validação}
catch(Exception ex){//sua msg de validação}
att Davi
GOSTEI 0
Dyego Carmo
02/07/2011
Você vai precisar tratar string por string , e fazer um if :)
Não tem outra forma.;
Não tem outra forma.;
GOSTEI 0
Nilo Souza
02/07/2011
Fiz conforme orientou:
[/ode]
try{
meu metodo
}
catch(FBSQLException fb){ Aqui pus um jOptionPanel (mensagem 1) }
catch(SQLException sq){ Aqui pus um jOptionPanel (mensagem 2) }
catch(Exception ex){ Aqui pus um jOptionPanel (mensagem 3) }
[/code] O problema é que ao aparecer a mensagem 1 pq o erro era do banco FBSQLException , retornou a mensagem na tela do SQLException. Não deu certo ainda!
catch(FBSQLException fb){ Aqui pus um jOptionPanel (mensagem 1) }
catch(SQLException sq){ Aqui pus um jOptionPanel (mensagem 2) }
catch(Exception ex){ Aqui pus um jOptionPanel (mensagem 3) }
[/code] O problema é que ao aparecer a mensagem 1 pq o erro era do banco FBSQLException , retornou a mensagem na tela do SQLException. Não deu certo ainda!
GOSTEI 0
Nilo Souza
02/07/2011
Fiz conforme orientou:
O problema é que ao aparecer a mensagem 1 pq o erro era do banco FBSQLException , retornou a mensagem na tela do SQLException. Não deu certo ainda!
try{
meu metodo
}
catch(FBSQLException fb){
Aqui pus um jOptionPanel (mensagem 1)
}
catch(SQLException sq){
Aqui pus um jOptionPanel (mensagem 2)
}
catch(Exception ex){
Aqui pus um jOptionPanel (mensagem 3)
}
GOSTEI 0
Robson Teixeira
02/07/2011
cada objeto de suas excetions mostradas possui o metodo getMessage onde retorna a mensagem do erro segue exemplo
try{
meu metodo
}
catch(FBSQLException fb){ Aqui pus um jOptionPanel (fb.getMessage()) }
catch(SQLException sq){ Aqui pus um jOptionPanel (sq.getMessage()) }
catch(Exception ex){ Aqui pus um jOptionPanel (ex.getMessage()) att robson
catch(FBSQLException fb){ Aqui pus um jOptionPanel (fb.getMessage()) }
catch(SQLException sq){ Aqui pus um jOptionPanel (sq.getMessage()) }
catch(Exception ex){ Aqui pus um jOptionPanel (ex.getMessage()) att robson
GOSTEI 0
Davi Costa
02/07/2011
Excelente a solução do Robson, se ainda assim ele mostrar sempre um SQLException, não se preocuoe é pq realmente a exceção lançada foi uma SQLException. A partir de agora dentro do seu catch vc pode tratar essas msgs de retorno, para ficar mais amigável com o usuário.. e por ai vai.
att Davi
att Davi
GOSTEI 0