You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Chapman Flack edited this page Dec 22, 2015
·
2 revisions
Exception handling
You can catch and handle an exception in the PostgreSQL back-end just like any
other exception. The back-end ErrorData structure is exposed as a property in
a ServerException class derived from java.sql.SQLException, and the Java
try/catch mechanism is synchronized with the back-end mechanism.
Note: for several reasons (see Thoughts on logging for background),
referring to ServerException and ErrorData from your code is not
currently recommended, and in the future may become impossible. An improved
mechanism is expected in a future release. Until then, using only the
standard Java API of java.sql.SQLException and its standard attributes
(such as SQLState) is recommended wherever possible.
PL/Java will always catch exceptions that you don't. They will cause a
PostgreSQL error and the message is logged using the PostgreSQL logging
utilities. The stack trace of the exception will also be printed if the
PostgreSQL configuration parameter log_min_messages is set to DEBUG1
or lower.
Important Note:
You will not be able to continue executing back-end functions until your
function has returned and the error has been propagated when the back-end has
generated an exception unless you have used a save-point. When a save-point is
rolled back, the exceptional condition is reset and execution can continue.