Alguem sabe me dizer se é possivel capturar qual o erro que ocorreu na base de dados quando submeto algum comando sql com java.sql .
Tipo se ocorreu um erro de chave primaria eu captura-lo e trata-lo adequadamente
Chave Primaria
4 Respostas
o stacktrace não resolve? se acontecer algum erro a excessão será lançada, vc pode olhar o erro aí.
Eu quero o sistema veja o erro em tempo de execucao e verifique se é erro de chave primaria e entao trate o mesmo.
Olá,
Vc quer tratar uma exessão e de acordo com o motivo do erro o seu programa tomar algumas decisões.
O problema é que as mensagens de erro no banco de dados variam de banco para banco ( as mensagens do Oracle são diferentes do SQL Server e assim vai…).
No caso do Oracle ele retorna sempre uma string com o padrão
ORA-NNNNN com o codigo do erro, assim vc pode usar o metodo
getMessage() de sua referencia SQLException e parsea-la com a API de expressões regulares ou mesmo os metodos de pesquisa de String.
Se vc precisar de informações mas precisas pode usar
public StackTraceElement[] Throwable.getStackTrace() de sua referencia SQLException e percorrer o vetor de linhas ( cada elemento corresponde a uma linha do stack trace ) e tomar suas decisões.
O importante é descobrir o código do erro de PK nos bancos que vc usa e mapea-los em sua aplicação.
Claudio Gualberto.
SCJP 2 1.4
danielcordeiro,
O que (mais detalhadamente) vc quer dizer com: “…captura-lo e trata-lo adequadamente…” (sobre o erro de pk)? Que tipo de tratamento é esse?
Obrigado! 