如何从 SQLException 对象中获取 SQLException 原因

Dan*_*ats 4 java jdbc sqlexception

我正在使用 JDBC,并且正在运行查询。有没有办法从返回的 SQLException 对象中获取失败的原因?

特别是,我想知道我的查询是否违反了外键约束(以及哪个)或键约束。

这个结果是特定于供应商的吗?以防万一,我使用的是 postgresql-8.4-701.jdbc4.jar 驱动程序。如果它是特定于供应商的,我在哪里可以找到代码?

编辑:我想动态地做到这一点 - 即

if(violated foreign key constraint on attribute x) {
     return 5;
} else if (violated primary key constraint) {
     return 7;
} else {
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

或类似的东西。

编辑:根据这篇文章,PostgreSQL JDBC 没有特定于供应商的错误代码。不知道这是否仍然有效。

Rak*_*esh 5

您可以处理来自 SQLException 对象的错误代码。

sqlException.getErrorCode()
Run Code Online (Sandbox Code Playgroud)

这将检索此 SQLException 对象的供应商特定异常代码。通过使用特定于供应商的错误代码,您可以分支到所需的代码块。