Postgres JDBC: Конкретный код ошибки PSQLException?

1

При написании Java-кода, использующего базу данных Oracle, всегда можно поймать SQLException чтобы прочитать определенную ошибку Oracle с помощью e.getErrorCode(). Например, ошибка 28001 означает истекший пароль, 28000 - заблокированная учетная запись, 1017 - неправильный пользователь/пароль и т.д.

Таким образом, я могу управлять разными ошибками соответствующим образом.

Но с базами данных PostgreSQL e.getErrorCode() всегда возвращает 0, даже если поймать Postgres-специфическое PSQLException.

Вопрос

  • Есть ли способ, которым я не знаю, получить конкретный код ошибки для исключения базы данных Postgres в Java, кроме попытки разобрать сообщение об ошибке (которое, кстати, может быть на любом локализованном языке)?
  • 1
    Вы пробовали смотреть на getSqlState () вместо этого? Смотрите также: postgresql.org/docs/9.3/static/errcodes-appendix.html
  • 0
    Просто обнаружил, что, пожалуйста, напишите ответ, чтобы принять его.
Теги:
exception
error-handling
jdbc

1 ответ

1
Лучший ответ

Вы пробовали искать getSqlState() вместо этого? См. Также: http://www.postgresql.org/docs/9.3/static/errcodes-appendix.html

  • 0
    Каждая неудачная попытка подключения возвращает «08001» независимо от причины (неверный пароль, неверный IP-адрес, неверный порт, неверный пользователь, неверное имя базы данных, отсутствие подключения к сети), все возвращает «08001».

Ещё вопросы

Сообщество Overcoder
Наверх
Меню