PostgreSQL JDBC 错误代码枚举

PostgreSQL JDBC Error Code Enumeration

PostgreSQL error codes provided with the JDBC driver, or do we have to create that enumeration ourselves? I can't find anything about the error codes in the JDBC documentation的枚举。

开始编辑

为了阐明我在寻找什么,这是我现有的代码:

catch (final SQLException e) {
    if ("23514".equals(e.getSQLState())) {
        // check_violation
    }
}

我觉得大多数程序员会对那行表示怀疑,因为它既不是自文档化的也不是可重用的。每次开发人员需要确定异常的原因时,他(她)将被迫在线查找错误代码,并将一个幻数硬编码到条件中。相反,我更愿意编写如下代码:

catch (final SQLException e) {
    if (PGErrors.check_violation.equals(e.getSQLState())) {
        ...
    }
}

这样的class枚举PostgreSQL错误代码是否已经存在?

Does such a class enumerating the PostgreSQL error codes already exist?

是的,确实如此:org.postgresql.util.PSQLState

但是,您引用的页面上列出了 238 个错误代码,org.postgresql.util.PSQLState 仅列举了 41 个值。在这 41 个值中,只有 33 个来自 PostgreSQL 错误代码列表(大约 14% 的覆盖率)。

如果您需要任何其他常量,则必须自己枚举它们。