我正在创建一个简单的表单,它通过使用JDBC的Java Servlet将输入的数据存储在一个极其简单的Oracle数据库表中。该表使用电子邮件地址作为主键。如果用户使用相同的电子邮件地址多次提交表单,则execute
函数失败并抛出SQLException。异常的字符串如下:
java.sql.SQLException: ORA-00001: unique constraint (...removed...) violated
在这个场景中,我想捕获这个异常,并通过告诉用户不能使用相同的电子邮件地址多次提交表单来处理它。什么是正确的方式来处理ORA-00001分开,不同于任何其他sqlexexceptions,可以由execute
抛出?字符串比较显然可以在这里工作,但这似乎是一个糟糕的解决方案。
如果您不需要独立于DBMS使用SQLException.getErrorCode()
返回供应商特定的数字错误代码。对于ORA-0001,这将是1