ABAP Keyword Documentation → ABAP - Reference → Program Flow Logic → Exception Handling
Class-Based Exceptions
Class-based exceptions are realized as instances of exception classes. Exception classes are either predefined globally in the system or can be defined by the user (globally or locally). Class-based exceptions are raised either by the ABAP runtime environment or by a program.
- Exception situations recognized by the system, and whose causes can be handled in the program, raise predefined class-based exceptions.
- The exceptions of all exception classes visible in a program can be raised by the statement
RAISE EXCEPTION
and by the additionTHROW
in conditional expressions.
- Class-based exceptions can be declared in the interface of
procedures. For local procedures, this is done
using the addition
RAISING
of the statementsMETHODS
andFORM
. In Class Builder and Function Builder, this done by selecting exception classes when defining exceptions in the interface. The declared exceptions can occur at the call position of a procedure if the exception is not handled in the procedure.
When an exception is raised, an exception object can be created, whose attributes contain information
about the error situation. A class-based exception can be handled in a
TRY control structure. The TRY
block defines a protected area,
whose exceptions can be handled in subsequent CATCH
blocks. The statement
RETRY
enables a complete TRY
block to be repeated after an exception. Because all exception classes are subclasses of common superclasses, the associated exceptions can be handled at the same time by handling the respective superclass. The system
propagates the exception object or the class-based exception until the exception is handled or an interface is violated.
There are two different exception handling cases:
A prerequisite for the second case are
resumable exceptions. These exceptions must be raised with the addition RESUMABLE
of the statement RAISE EXCEPTION
and declared using the addition RESUMABLE
in the interface of the procedures
from which they were propagated. The statement RESUME
is used to resume the program.
Other versions: 7.31 | 7.40 | 7.54