8

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

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

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

4

1 回答 1

14

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

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

于 2011-04-19T16:07:05.727 回答