ARTICLE
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 addition
THROW 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 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
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:
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 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.
ABAP_PGL Using Class-Based Exceptions
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved