The RAISE
statement stops normal execution of a PL/SQL block or subprogram and transfers control to an exception handler.
RAISE
statements can raise predefined exceptions, such as ZERO_DIVIDE
or NO_DATA_FOUND
, or user-defined exceptions whose names you decide.
Keyword and Parameter Descriptions
A predefined or user-defined exception. For a list of the predefined exceptions, see Predefined PL/SQL Exceptions.
Raise an exception in a PL/SQL block or subprogram only when an error makes it impractical to continue processing. You can code a RAISE
statement for a given exception anywhere within the scope of that exception.
When an exception is raised, if PL/SQL cannot find a handler for it in the current block, the exception propagates to successive enclosing blocks, until a handler is found or there are no more blocks to search. If no handler is found, PL/SQL returns an unhandled
exception
error to the host environment.
In an exception handler, you can omit the exception name in a RAISE
statement, which raises the current exception again. This technique enables you to take some initial corrective action (perhaps just logging the problem), then pass control to another handler that does more extensive correction. When an exception is reraised, the first block searched is the enclosing block, not the current block.