Jak mogę złapać ten wyjątek:Złap duplikat wpisu Wyjątek
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
Duplicate entry '22-85' for key 'ID_CONTACT'
Jak mogę złapać ten wyjątek:Złap duplikat wpisu Wyjątek
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
Duplicate entry '22-85' for key 'ID_CONTACT'
używam sprężynę więc go rozwiązać przez org.springframework.dao.DataIntegrityViolationException
try {
ao_history_repository.save(new AoHistory(..));
}
catch (DataIntegrityViolationException e) {
System.out.println("history already exist");
}
połów SQLIntegrityConstraintViolationException, jeśli używasz Java 1.6 +
np
try {
ps.executeUpdate("INSERT INTO ...");
} catch (SQLIntegrityConstraintViolationException e) {
// Duplicate entry
} catch (SQLException e) {
// Other SQL Exception
}
lub
try {
ps.executeUpdate("INSERT INTO ...");
} catch (SQLException e) {
if (e instanceof SQLIntegrityConstraintViolationException) {
// Duplicate entry
} else {
// Other SQL Exception
}
}
'Nieosiągalny blok catch dla SQLIntegrityConstraintViolationException. Ten wyjątek nigdy nie jest wyrzucany z ciała instrukcji try ' – Youssef
@Youssef, jaka jest wersja twojego mysql-connector-java? A jaki jest kod SQL, który próbujesz zaktualizować? – auntyellow
Wymagany jest catching SQLException. Następnie można wykryć, czy jest to wyjątek SQLIntegrityConstraintViolationException. Zwróć uwagę, że wyjątek MySQLIntegrityConstraintViolationException jest typem wyjątku SQLIntegrityConstraintViolationException. – auntyellow
Poniższy kod działa dla mnie:
try {
requete.executeUpdate();
} catch (final ConstraintViolationException e) {
}
używam Wiosna. więc złapać org.springframework.dao.DuplicateKeyException
try{
...
} catch (DuplicateKeyException dke) {
...
}
Byłoby lepiej, aby rozwiązać problem, który jest przyczyną tego wyjątku – sol4me
to nie jest problem, ale z aplikacji internetowej użytkownik może zmienić parametry żądania HTTP i chcę upewnij się, że wszystko działa, więc chcę dodać to zabezpieczenie warstwy. – Youssef
Ale jak widać na stosie, że podczas wstawiania naruszasz ograniczenie i lepiej jest najpierw sprawdzić dane przed wysłaniem ich do bazy danych. Oczywiście możesz złapać wyjątek, jeśli naprawdę chcesz, ale wolałbym czyściejsze rozwiązanie. – sol4me