Обсуждение: plpgsql, Exception handling: catching the message ?
Hello,
In an exception block, we can check the error code.
Is there a way to get the message and possibly the detail too ?
ereport(ERROR, \
(errcode(ERRCODE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION), \
=> errmsg("could not establish connection"), \
=> errdetail("%s", msg))); \
background: (Version 8.3.12)
dblink seems to sometimes only provides information of the remote
exception in the message, with a misleading errcode:
select * from dblink_send_query ('c', 'create table my_share4( a
int)');
select * from dblink_get_result('c') as t1(f1 text);
ERROR: sql error
DETAIL: ERROR: relation "my_share4" already exists
********** Error **********
ERROR: sql error
SQL state: 42601 (<= SYNTAX ERROR)
Detail: ERROR: relation "my_share4" already exists (=>
DUPLICATE TABLE)
best regards,
Marc Mamin
Hello 2010/11/18 Marc Mamin <M.Mamin@intershop.de>: > > Hello, > > In an exception block, we can check the error code. > Is there a way to get the message and possibly the detail too ? > yes, but you need a 8.4 as minimum http://www.postgresql.org/docs/8.4/interactive/plpgsql-errors-and-messages.html Regards Pavel Stehule > > > ereport(ERROR, \ > (errcode(ERRCODE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION), \ > => errmsg("could not establish connection"), \ > => errdetail("%s", msg))); \ > > > > background: (Version 8.3.12) > dblink seems to sometimes only provides information of the remote > exception in the message, with a misleading errcode: > > > select * from dblink_send_query ('c', 'create table my_share4( a > int)'); > select * from dblink_get_result('c') as t1(f1 text); > > > ERROR: sql error > DETAIL: ERROR: relation "my_share4" already exists > > ********** Error ********** > > ERROR: sql error > SQL state: 42601 (<= SYNTAX ERROR) > Detail: ERROR: relation "my_share4" already exists (=> > DUPLICATE TABLE) > > > > best regards, > > Marc Mamin > > > > -- > Sent via pgsql-general mailing list (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general >