Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Program Flow →  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.

  • The exceptions of all exception classes visible in a program can be raised by the statement RAISE EXCEPTION.
  • Class-based exceptions can be declared in the interface of procedures. For local procedures, this is done using the addition RAISING of the statements METHODS and FORM. 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 RETRY statement 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:

  • The context in which the exception was raised is deleted completely before or after handling. This removes all procedures from the memory (and also their local data, which was called from the handler context and which caused the exception); handling is resumed depending on how the handler is exited.

  • The context in which the exception was raised is retained and the program is resumed after the statement that raised the exception.
  • A prerequisite for the second case are resumable exceptions. These exceptions must be raised with the RESUMABLE addition of the RAISE EXCEPTION statement and declared using the RESUMABLE addition in the interface of the procedures from which they were propagated. The RESUME statement is used to resume the program.

    Other versions: 7.31 | 7.40 | 7.54

    Programming Guideline

    Using Class-Based Exceptions

    Continue

    Exception Classes

    System Response after a Class-Based Exception

    RAISE EXCEPTION

    TRY

    Examples of Exceptions