Re: PSQLException - How to Identify Type?

From: Craig Ringer <craig(at)postnewspapers(dot)com(dot)au>
To: Ryan Daniels <ryan(dot)daniels(at)gmail(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: PSQLException - How to Identify Type?
Date: 2008-10-15 07:09:13
Message-ID: 48F59719.8040801@postnewspapers.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Ryan Daniels wrote:
>
> Hello,
>
> When I get a PSQLException, how do I identify which type it is? I need
> to be able to distinguish which error occurred.

Have a look at the JDBC documentation, in particular the documentation
for SQLException.

http://java.sun.com/javase/6/docs/api/java/sql/SQLException.html

Note the getErrorCode() and getSQLState() members?

The error code is usually quite sufficient for program flow control and
error handling decisions. See the PostgreSQL error code documentation:

http://www.postgresql.org/docs/current/static/errcodes-appendix.html

Note that you can match error codes by class (the first byte) as well as
by exact error code. As a result, you can easily do things like "Retry
the transaction on all possibly tansient errors" in quite a generic way.

The documentation for PSQLException shows you how to get information
from it, too:

http://jdbc.postgresql.org/development/privateapi/org/postgresql/util/PSQLException.html

it provdes getServerErrorMessage(), which returns about as much as you'd
ever want to know:

http://jdbc.postgresql.org/development/privateapi/org/postgresql/util/ServerErrorMessage.html

--
Craig Ringer

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message mark_addleman 2008-10-15 23:14:07 Re: COPY support in JDBC driver?
Previous Message Ryan Daniels 2008-10-15 05:01:12 PSQLException - How to Identify Type?