PRAGMA EXCEPTION_INIT v16
PRAGMA EXCEPTION_INIT
associates a user-defined error code with an exception. You can include a PRAGMA EXCEPTION_INIT
declaration in any block, sub-block, or package. You can assign an error code to an exception using PRAGMA EXCEPTION_INIT
only after declaring the exception.
Syntax
The format of a PRAGMA EXCEPTION_INIT
declaration is:
Where:
exception_name
is the name of the associated exception.
exception_number
is a user-defined error code associated with the pragma. If you specify an unmapped exception_number
, the server returns a warning.
exception_code
is the name of a predefined exception. For a complete list of valid exceptions, see the Postgres core documentation.
Using a PRAGMA EXCEPTION_INIT declaration
This example uses a PRAGMA EXCEPTION_INIT
declaration:
The following procedure calls the check_balance
procedure. If p_amount
is greater than p_balance
, check_balance
raises an exception. The purchase
procedure catches the ar.overdrawn
exception.
When ar.check_balance
raises an exception, execution jumps to the exception handler defined in purchase
:
The exception handler returns an error message, followed by SQLCODE
information:
Using a predefined exception
This example uses a predefined exception. The code creates a more meaningful name for the no_data_found exception
. If the given customer doesn't exist, the code catches the exception, calls DBMS_OUTPUT.PUT_LINE
to report the error, and then raises the original exception again: