Как правильно поймать и обработать исключение ORA-00001 SQLException с JDBC?
Я создаю простую форму, которая хранит введенные данные в чрезвычайно простой таблице базы данных Oracle через сервлет Java с использованием JDBC. Эта таблица использует адрес электронной почты в качестве первичного ключа. Если пользователь отправляет форму несколько раз с одним и тем же адресом электронной почты, execute
Функция завершается с ошибкой и выдает SQLException. Строка исключения является следующей:
java.sql.SQLException: ORA-00001: unique constraint (...removed...) violated
В этом сценарии я хотел бы поймать это исключение и разобраться с ним, сказав пользователю, что форму нельзя отправить несколько раз с одним и тем же адресом электронной почты. Как правильно обрабатывать ORA-00001 отдельно и отличаться от любых других исключений SQLE, которые могут быть выброшены execute
? Сравнение строк здесь может сработать, но это кажется плохим решением.
1 ответ
Если вам не нужно быть независимым от СУБД SQLException.getErrorCode()
Возвращает специфический числовой код ошибки поставщика. Для ORA-0001 это будет 1