ABAP Keyword Documentation → ABAP Programming Guidelines → Architecture → Error Handling
Reaction to Error Situations
Other versions: 7.31 | 7.40 | 7.54
Background
ABAP provides the following concepts that a program can use to properly react to different error situations:
- Exceptions
RAISE EXCEPTION
) in the program. Exception handling enables a response to
be made to these events. An exception that is not handled results in a runtime error; that is, the program terminates and displays a short dump that describes the exception.
- Assertions
ASSERT
.
- Messages
MESSAGE
.
- Program Terminations
RAISE SHORTDUMP
and THROW SHORTDUMP
make it possible to resolve runtime errors associated with an exception object. The attributes of the exception object can be displayed in the short dump of the runtime error.
These four concepts either involve the handling of the error situations by the program or the user (exceptions
or error messages) or produce a controlled program termination (assertions, RAISE SHORTDUMP
, THROW SHORTDUMP
, and exit messages).
Rule
Select an appropriate reaction to error situations
Select the appropriate concept of error handling (exception, assertion, message, or program termination) for the respective error situation so that the error can either be handled adequately in the further course of the program or is terminated in a controlled manner.
Details
For each error situation, you should decide on one of the three concepts for error handling:
- Exceptions are to be used in all unexpected situations that the user does not have under control. These include, for example, invalid parameter values during the procedure call or unavailable external resources, such as files.
- Assertions are to be used to detect inconsistent program states that necessitate an immediate program termination.
- Messages are to be used only as dialog messages for error dialogs within the scope of classic dynpro processing (if still available). If you want to implement a program termination in situations where it is not a good idea for the program to continue, use assertions from now on instead of termination or exit messages.
- Targeted program terminations should only be used as a last resource when a program cannot otherwise
execute correctly. They can be raised by failed assertions
RAISE SHORTDUMP
,THROW SHORTDUMP
, or exit messages. Exit messages, if used, offer the fewest options for passing error information to the short dump. Assertions make it possible to write log entries and can be controlled from outside the program.RAISE SHORTDUMP
and THROW SHORTDUMP pass exception objects and their attributes, which is of particular use for analyzing previous exceptions.
The statement MESSAGE
is not only used to display dialog messages in a classic
dynpro, but can also be deployed to terminate a program in a controlled manner or raise classic exceptions
in the MESSAGE ... RAISING
variant if the appropriate message type is selected. This invites you to combine the different concepts,
which may lead to problems. This can be traced back to the old programming model that was driven exclusively by classic dynpros, in which an error situation directly required the output of a message to the user.
For contemporary programming that takes the separation of concerns (SoC) into account, the question of whether a message is to be sent to the user in the event of an error can usually only be answered in a higher software layer. The layer in which such an error situation occurs must therefore react with an exception initially, which in turn represents a new situation for a higher layer, to which it can react with a dialog message or any other error message.