Sobre generalização em exceções à banco de dados

Postei aqui por julgar isto como básico, embora ja trabalhe com java há muitos anos, nunca tive de resolver tal problema…

Participo de um projeto que não há necessariamente um banco de dados padronizado…
ou seja, o banco em si pode ser configurado via propriedades para trabalhar com alguns sgbds e drivers existentes…

porém surgiu o pipino a seguir…

Necessito capturar exceções SQL em geral…
checagem de integridade das contraints, para exemplificar

Se eu usar mysql
ele irá disparar a exceção

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException

o problema é: se eu quiser generalizar, tenho que dispor uma estrutura capaz de lançar genéricamente exceções deste tipo, de modo que o sistema em si pudesse tratar esta mesma exceção para qualquer banco que for implementado…

Nunca, nestes 12 anos de desenvolvimento em java, necessitei trabalhar diretamente com exceções “criadas”, e pelo que andei pesquisando, aparentemente a api não generaliza “uma” exceção abstract, por exemplo, deste tipo citado acima…

até SQLIntegrityConstraintViolationException não é abstrata
e se no meu código houver a captura de tal exceção… quando é gerada por exemplo uma a partir de mysql, o java ignora o bloco catch… (e com todo sentido!)

O que busco aqui é alguma sugestão, alternativa ou até mesmo gambiarra para contornar este problema de modo que eu não precise esculhambar o código existente…

Abraços e grato a quem ajudar!

À esse “esculhambar” me refiro a casos em que teria de criar um catch pra cada driver e consequentemente, carregar todos em memória…

Ou até mesmo situações em que eu tivesse de lançar a exceção a partir da instrução, até sua apresentação final… ( em média 7 camadas de tratamento)

Socorro!

RESOLVIDO:

aparentemente por descuido esqueci me de aninhar o lançamento…
consultei aqui: http://docs.oracle.com/javase/tutorial/essential/exceptions/chained.html

basicamente resolveu meu problema…

try {

} catch (IOException e) {
    throw new SampleException("Other IOException", e);
}

tirando o fato de que isto é um exemplo de captura e lançamento (chained) e que utilizo especificamente para o caso de exceções de constraints…
ví tb que por descuido havia dito que SQLIntegrityConstraintViolationException compartilha sim a mesma interface de criação das exceções oriundas de SQL e é genérica para exceções desde tipo vindas de qualquer driver Jdbc

desculpem pela dúvida, talvez isto ajude alguém no futuro