2013-10-05 2 views
1

У меня есть многопоточное приложение, которое подключается к Postgresql. Я хочу, чтобы мое приложение попыталось подключиться снова, если слишком много клиентов, но я хочу показать ошибку пользователю, что аутентификация не удалась. К сожалению, оба этих события вызывают SQLException, и единственный способ разграничения между ними - это, по-видимому, анализ текста из метода toString(). Есть ли способ лучше?SQLException слишком много клиентов против auth не удалось

ответ

1

Postgres имеет error codes.

Вы абсолютно уверены, что они не подвергаются каким-либо образом за исключением?

Плюс, какой язык вы используете? Ява? Если да, хотя я не имею никакого отношения к Java, я думаю, что PSQLException does expose that information.

+0

Спасибо, это доставит меня туда, где я хочу. – user2669285

+0

Если это работает для вас, отметьте этот ответ как принятый. –

+0

Это немного смешно. getErrorCode() возвращает частное поле vendorCode. Это устанавливается в contructor "public SQLException (String reason, String sqlState, int vendorCode, Throwable cause)". Тем не менее, PSQException не переопределяет этот contructor, и все реализованные contructors присваивают 0 vendorCode. – user2669285

Смежные вопросы