Olá,
Quero tratar uma excepção deste género:
org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint “aprovacoes_pkey”
para mostrar uma mensagem ao utilizador mais intuitiva ex. “já existe uma aprovação com esse número!”
Existe algum código de erro para analisar ou tenho mesmo que analisar a mensagem? Se tiver que analisar essa string existe algum parser que ajude nesta tarefas?
Obrigado.
Se eu entendi bem sua dúvida, acho que vc tem que capturar a excessão e usar getErrorCode()
(public int getErrorCode()Retrieves the vendor-specific exception code for this SQLException object. )
para identificar o erro pelo código e atribuir a respectiva mensagem.
Já tentei isso mas retorna sempre zero. Experimentei o método ex.getSQLState() que retorna SQL return codes cujo o significado é explicado em:
http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/db2/rbafzmstcksql.htm
No entanto esta solução tb não resolvia o meu problema visto que com esse código apenas é possível identificar o erro e não qual o campo que o provoca. Então resolvi fazer um parser para analisar msg do tipo : org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint “aprovacoes_pkey”
A solução foi a possível e não a óptima!
Mas fica aqui a minha experiência e pode ser que haja melhores soluções.
Muito obrigado pela resposta!
Queria saber como tratar essa exceção…
Esta exceção está sendo lançada quando executo getEm().persist(entidade); Mas tentei fazer um catch e o netbeans não aceita…
Queria saber como podia fazer esse try catch… Na minha classe tenho algo parecido com isso aqui embaixo
@PersistenceContext
private EntityManager em;
public EntityManager getEm() {
return this.em;
}
public Entidade metodoPersistir(Entidade entidade) {
try {
getEm().persist(entidade);
} catch (XXXXXException e) {
System.out.println("EXCEÇÃO");
} finally {
return entidade;
}
}
queria saber o que deveria colocar no lugar de XXXXXException
Obrigado.