Catchable Runtime Errors

Prior to Release 6.10, catchable runtime errors were the only way to handle error situations during the execution of ABAP statements in the ABAP program, thus preventing the program from terminating. A runtime error marked as catchable could be handled using the statements CATCH SYSTEM-EXCEPTIONS ... ENDCATCH. To ensure downward compatibility, this option is still supported after Release 6.10.

Starting with Release 6.10, exceptions are generally handled based on the class. Therefore, each catchable runtime error is assigned a predefined exception class. This allows you to catch this error like all catchable exceptions between the statements TRY ... ENDTRY using the statement CATCH. This is the preferred method. Parallel handling using TRY ... ENDTRY and CATCH ... ENDCATCH within one processing block is forbidden. SAP plans not to introduce any more new catchable runtime errors in the future but to handle exceptions in ABAP statements exclusively by assigning exception classes.

If you use CATCH SYSTEM-EXCEPTIONS to handle catchable runtime errors, then the name of the runtime error is used as the basis. So that runtime errors that belong together semantically can be caught using a common name, they are combined together in exception groups that basically correspond to the abstract intermediate classes in the inheritance hierarchy of the assigned exception classes.

These exception groups are assigned ABAP keywords. It is only for those keywords assigned to a specific exception group that you can catch the runtime errors contained in this exception group using CATCH SYSTEM-EXCEPTIONS. Class-based exceptions, however, do not refer to the keyword but to the error situation.