Wie kann ich fangen diese Ausnahme:Fang doppelten Eintrag Ausnahme
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
Duplicate entry '22-85' for key 'ID_CONTACT'
Wie kann ich fangen diese Ausnahme:Fang doppelten Eintrag Ausnahme
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
Duplicate entry '22-85' for key 'ID_CONTACT'
ich Frühling so lösen wir es von org.springframework.dao.DataIntegrityViolationException
try {
ao_history_repository.save(new AoHistory(..));
}
catch (DataIntegrityViolationException e) {
System.out.println("history already exist");
}
fangen SQLIntegrityConstraintViolationException, wenn Sie Java verwenden 1.6+
z.B.
try {
ps.executeUpdate("INSERT INTO ...");
} catch (SQLIntegrityConstraintViolationException e) {
// Duplicate entry
} catch (SQLException e) {
// Other SQL Exception
}
oder
try {
ps.executeUpdate("INSERT INTO ...");
} catch (SQLException e) {
if (e instanceof SQLIntegrityConstraintViolationException) {
// Duplicate entry
} else {
// Other SQL Exception
}
}
'Unreachable catch block für SQLIntegrityConstraintViolationException. Diese Ausnahme wird niemals aus dem try statement body' – Youssef
@Youssef ausgelöst. Wie lautet die Version Ihres mysql-connector-java? Und was ist das SQL, das Sie versuchen zu aktualisieren? – auntyellow
Catching SQLException ist erforderlich. Dann können Sie feststellen, ob es sich um eine SQLIntegrityConstraintViolationException handelt. Beachten Sie, dass MySQLIntegrityConstraintViolationException ein Typ von SQLIntegrityConstraintViolationException ist. – auntyellow
Der folgende Code funktioniert für mich:
try {
requete.executeUpdate();
} catch (final ConstraintViolationException e) {
}
I Frühling verwenden. So fangen org.springframework.dao.DuplicateKeyException
try{
...
} catch (DuplicateKeyException dke) {
...
}
Es wäre besser, das Problem zu lösen, die diese Ausnahme verursacht – sol4me
es ist kein Problem, aber mit einer Web-Anwendung kann ein Benutzer HTTP-Request-Parameter ändern und ich möchte sicher sein, dass alles funktioniert, also möchte ich diese Schicht Sicherheit hinzufügen. – Youssef
Aber wie Sie aus dem StackTrace sehen können, verletzen Sie beim Einfügen eine Einschränkung und es ist besser, zuerst die Daten zu validieren, bevor Sie sie an die Datenbank senden. Sie können natürlich Ausnahme fangen, wenn Sie wirklich wollen, aber ich würde eine sauberere Lösung bevorzugen – sol4me