GARANTIR DESCONTO

Fórum Personalizar mensagem de erro #404185

02/07/2011

0

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):
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

Nilo Souza

Responder

Posts

02/07/2011

Davi Costa

Vc tem a opção de passdar uma String ao invés da exception:

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
Responder

Gostei + 0

02/07/2011

Nilo Souza

Deu certo, mas o joption pane não aceita o ícone correto. Queria colocar o a letra (i) para personalizar a mensagem.
Responder

Gostei + 0

04/07/2011

Davi Costa

Teste com esse então:

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
Responder

Gostei + 0

05/07/2011

Nilo Souza

Colega, outra coisa. Teria como pegar a mensagem do erro abaixo:  
 org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544517. exception 1 Error_Acess 
  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       }
Responder

Gostei + 0

05/07/2011

Nilo Souza

Colega, outra coisa. Teria como pegar a mensagem do erro abaixo:  
 org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544517. exception 1 Error_Acess 
  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 
 
   mensagem do sistema. 
 
}

 
Responder

Gostei + 0

05/07/2011

Davi Costa

Joga esse valor numa String e trata do jeito que vc quizer e passa esse String que vc tratou no JOptionPane


att Davi
Responder

Gostei + 0

05/07/2011

Nilo Souza

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
Responder

Gostei + 0

05/07/2011

Davi Costa

No try/catch coloca acma de Exceptionum atch com SQLException ou FBSQLException.

Att Davi
Responder

Gostei + 0

06/07/2011

Nilo Souza

Devi, não entendi! Ficou meio confusa a explicação. Pode ilustrar?
Responder

Gostei + 0

07/07/2011

Davi Costa

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
Responder

Gostei + 0

08/07/2011

Dyego Carmo

Você vai precisar tratar string por string , e fazer um if :)

Não tem outra forma.;

Responder

Gostei + 0

08/07/2011

Nilo Souza

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!
Responder

Gostei + 0

08/07/2011

Nilo Souza

Fiz conforme orientou:  
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)
 
 
}
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!
Responder

Gostei + 0

12/07/2011

Robson Teixeira

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
Responder

Gostei + 0

12/07/2011

Davi Costa

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
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar