Which three are true regarding error propagation? (Choose three)
A.
An exception cannot propagate across remote procedure calls.
B.
An exception raised inside a declaration immediately propagates to the current block.
C.
The use of the RAISE; statement in an exception handler reraises the current exception.
D.
An exception raised inside an exception handler immediately propagates to the enclosing block.
Explanation:
A: Exceptions cannot propagate across remote procedure calls (RPCs). Therefore, a PL/SQL
block cannot catch an exception raised by a remote subprogram. For a workaround, see “Defining
Your Own Error Messages: Procedure RAISE_APPLICATION_ERROR” .
C: To reraise an exception you place a RAISE statement in the local exception handler.
D: When an exception is raised, the control is passed to the exception-handling section. The
control is never transferred back to the executable section after the exception is handled rather it
propagates to the enclosing block.
Incorrect Answer
B: As a rule of thumb, exceptions are declared in the declarative section, raised in the executable
section,and handled in the exception-handling section. When an exception is raised, the control is passed
to the exception-handling section