Как правильно поймать и обработать исключение 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

Другие вопросы по тегам