我正在使用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;
}或者类似的东西。
编辑:根据this post的说法,PostgreSQL JDBC没有特定于供应商的错误代码。不知道这是否仍然有效。
发布于 2012-03-12 13:23:41
您可以处理来自SQLException对象的错误代码。
sqlException.getErrorCode()这将检索此SQLException对象的特定于供应商的异常代码。通过使用特定于供应商的错误代码,您可以分支到所需的代码块。
发布于 2012-03-12 11:01:09
尝试打印堆栈跟踪(e为SQLException类型)
e.printStackTrace()或者得到信息
e.getMessage()这些可能会为查询失败的原因提供一些解释
https://stackoverflow.com/questions/9661217
复制相似问题