Мозг и когнитивные функции

среда, 5 сентября 2007 г.

JDBC - SQLException.getErrorCode() / PostgreSQL 8.2

Интересное поведение сабжа.

Ранее код типа

try {
...
} catch(SQLException err) {
rollback(conn);
if(err.getErrorCode()==23505) ...
else throw new ...
}

работал нормально для некоторых SQL серверов.
PostgreSQL начиная с версии 7.4 ВСЕГДА там возвращает 0.
Реальные коды ошибок описаны в документации.

Другими словами, при работе с постгресом следует применять ::getSQLState();

try {
...
} catch(SQLException err) {
rollback(conn);
if("23505".equals(err.getSQLState())) ...
else throw new ...
}


Удачи!

Комментариев нет: