Pessoal,
o ponto é o seguinte: pra quem usa JDBC, sabemos que o SQLEXception encapsula diversos diversos diferentes de erro de banco, na verdade todos eles, tudo, é SQLException.
Daí é que vem: se quisermos saber se foi erro de chave duplicada, campo unique, etc etc, pra podermos tratar apropriadamente conforme o tipo do erro, analisamos o seguinte:
-> invocamos o getErrorCode() que retorna o inteiro correspondente ao codigo de erro que o banco lançou;
-> podemos também olhar o getMessage() do SQLException lançado, embora isso não seja nada confiável porque a mensagem poderia mudar.
O ponto é: ambos os modos não são confiáveis se pressupormos uma mudança de banco em uma aplicação, ou mesmo uma mudança de versão de banco! Para o MySQL, por exemplo, tem havdo diferenças nos códigos de erro com o decorrer das versões…
Então A PERGUNTA É:
alguem, alguma API, etc, já criou alguma camada de abstração que dê subclasses de SQLException ou algo assim visando explicitar melhor os tipos de erro de banco?
Exemplo: recebe um SQLException e automaticamente retorna um exception particularizado para o erro, tal que, com este, podemos fazer um tratamento mais apropriado conforme o erro gerado!
PS: eu sei que o Spring tem uma solução pra isso, mas eu queria mesmo é apenas o mapeamento do SQLException para o erro particular, sem ter que mudar toda a implementação de consultas, etc etc de sistemas já em produção!
Muito grato por vossa atenção e auxílios futuros.