Chave Primaria

4 respostas
D

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

4 Respostas

ricardolecheta

o stacktrace não resolve? se acontecer algum erro a excessão será lançada, vc pode olhar o erro aí.

D

Eu quero o sistema veja o erro em tempo de execucao e verifique se é erro de chave primaria e entao trate o mesmo.

C

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

javeloper

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! :wink:

Criado 19 de junho de 2003
Ultima resposta 23 de jun. de 2003
Respostas 4
Participantes 4