Olá Pessoal!
Eu gostaria de tratar o erro ao tentar inserir o registro no banco de dados, e este registro já existe. Estou usando JPA com Hibernate. Este é o codigo que gerar o erro, mas eu queria capturar e tratar o erro exibindo ao usuario uma mensagem mais amigavel.
private EntityManager em = EntityManagerUtil.getEntityManager();;
public String gravar() {
try {
if (em.getTransaction().isActive() == false) {
em.getTransaction().begin();
}
em.merge(objeto);
em.getTransaction().commit();
mensagem = "Objeto incluido com sucesso!";
return SUCCESS;
} catch (Exception e) {
mensagem = "Erro ao incluir: " + e.getMessage();
return INPUT;
}
Da maneira que está me retorna :
Se eu tento pegar a exception mais baixa usando este método:
public static String getMensagemErro(Exception e) {
while (e.getCause() != null) {
e = (Exception) e.getCause();
}
return e.getMessage();
}
retorna:
Qual exceção eu deveria usar para capturar a mensagem do banco de dados corretamente e tratar?
Eu olhei nos tópicos existentes no fórum mas não conseguir me orientar corretamente.
Agradeço a ajuda de todos.