Tratamento de excessão chave unique no bd

4 respostas
W

Como posso fazer o tratamento dessa excessão no try catch para colocar uma mensagem para o usuário que o registro ja existe

4 Respostas

Hebert_Coelho

Faça um try/catch pegando a exception que o db está lançando.

aluisiodsv

O q eu mais vejo sendo usado é a verificação antes de persistir os dados, principalmente porque não é lançado uma exceção específica para este tipo de erro, mas sim um SQLException.

A não ser é claro q vc faça este tipo de tratamento, mas aí vc teria outro tipo de problema, já que cada bando lançaria um código diferente de erro para o unique constraint.

nel

Não há como saber exatamente do que se trata sua SQLException. Quer uma dica para esse problema ?
Faça uma busca na base de dados antes de chamar seu DAO, caso retorne algum registro, significa que estará repetindo e tu consegue lançar sua própria exceção e trata-la corretamente.

Quando se trata de SQLException, normalmente se é lançada um RuntimeException, justamente por não conhecer o motivo da exceção.
Pode ser duplicado, chave estrangeira, tabela inexistente, erro de syntax e etc.

jeffev

Também faço dessa forma.

Criado 22 de novembro de 2012
Ultima resposta 22 de nov. de 2012
Respostas 4
Participantes 5