Как правильно поймать и обработать исключение ORA-00001 SQLException с помощью JDBC?

Я создаю простую форму, в которой хранятся введенные данные в чрезвычайно простой таблице базы данных Oracle через сервлет Java с использованием JDBC. В этой таблице в качестве первичного ключа используется адрес электронной почты. Если пользователь отправляет форму несколько раз с одним и тем же адресом электронной почты, функция execute завершается ошибкой и генерирует SQLException. Строка исключения следующая:

java.sql.SQLException: ORA-00001: unique constraint (...removed...) violated

В этом сценарии я хотел бы перехватить это исключение и обработать его, сообщив пользователю, что форма не может быть отправлена ​​несколько раз с одним и тем же адресом электронной почты. Как правильно обрабатывать ORA-00001 отдельно и по-другому от любых других исключений SQLExceptions, которые могут быть сгенерированы при выполнении execute ? Здесь явно может работать сравнение строк, но это кажется плохим решением.

7
задан OMG Ponies 25 April 2011 в 15:50
поделиться