Para capturar una SQLException específica, debe comparar el estado de SQL usando getSQLState()
método. Ej.:SQL State 23 para violación de integridad de datos.
catch (SQLException ex) {
if (ex.getSQLState().startsWith("23")) {
JOptionPane.showMessageDialog(null, "Duplicate");
}
}