使用JDBC捕获和处理ORA-00001 SQLException的正确方法是什么?

Luk*_*uke 7 oracle constraints jdbc primary-key ora-00001

我正在创建一个简单的表单,使用JDBC通过Java Servlet将输入的数据存储在一个非常简单的Oracle数据库表中.该表使用电子邮件地址作为主键.如果用户使用相同的电子邮件地址多次提交表单,则该execute函数将失败并抛出SQLException.异常的字符串如下:

java.sql.SQLException: ORA-00001: unique constraint (...removed...) violated
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我想通过告诉用户使用相同的电子邮件地址多次提交表单来捕获此异常并处理它.什么是单独处理ORA-00001的正确方法,与可以抛出的任何其他SQLExceptions不同execute?字符串比较显然可以在这里工作,但这似乎是一个糟糕的解决方案.

a_h*_*ame 14

如果您不需要独立使用DBMS SQLException.getErrorCode()

它返回供应商特定的数字错误代码.对于ORA-0001,这将是1