Most catchable runtime errors are assigned to exception groups. Using the name of an exception group, you can catch all catchable runtime errors of the group simultaneously using CATCH SYSTEM-EXCEPTIONS.
A predefined exception class is specified for each catchable
runtime error which can be used to handle the runtime error starting as of Release 6.10. Normally, most
exception classes of an exception group belong to a common superclass. This superclass is specified in parentheses below the exception group. For details, see the
complete hierarchy.
The ABAP keywords assigned are specified for each exception group. It is only for those keywords that
are assigned to a specific exception group that you can catch the runtime errors contained in this exception group using CATCH SYSTEM-EXCEPTIONS.
(Associated superclass: CX_SY_ARITHMETIC_ERROR)
This group contains exceptions that may occur in arithmetic expressions, including division by zero, overflow and underflow of fields, and errors in arithmethic or trigonometric functions.
You cannot catch errors that may occur during the conversion between data types in mixed arithmethic expressions (see COMPUTE).
BCD_ZERODIVIDE | CX_SY_ZERODIVIDE |
COMPUTE_FLOAT_ZERODIVIDE | CX_SY_ZERODIVIDE |
COMPUTE_INT_ZERODIVIDE | CX_SY_ZERODIVIDE |
ADDF_INT_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
BCD_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_BCD_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_COSH_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_EXP_RANGE | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_FLOAT_DIV_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_FLOAT_MINUS_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_FLOAT_PLUS_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_FLOAT_TIMES_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_INT_ABS_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_INT_DIV_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_INT_MINUS_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_INT_PLUS_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_INT_TIMES_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_LOG10_ERROR | CX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_LOG_ERROR | CX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_MATH_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_POW_RANGE | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_SINH_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
COMPUTE_ACOS_DOMAIN | CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_ASIN_DOMAIN | CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_ATAN_DOMAIN | CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_COSH_DOMAIN | CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_COS_DOMAIN | CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_EXP_DOMAIN | CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_MATH_DOMAIN | CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_POW_DOMAIN | CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_SINH_DOMAIN | CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_SIN_DOMAIN | CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_SQRT_DOMAIN | CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_TANH_DOMAIN | CX_SY_ARG_OUT_OF_DOMAIN |
COMPUTE_COS_LOSS | CX_SY_PRECISION_LOSS |
COMPUTE_MATH_LOSS | CX_SY_PRECISION_LOSS |
COMPUTE_SIN_LOSS | CX_SY_PRECISION_LOSS |
COMPUTE_TAN_LOSS | CX_SY_PRECISION_LOSS |
BCD_FIELD_OVERFLOW | CX_SY_CONVERSION_OVERFLOW |
The following keywords are assigned to this exception group:
The keyword COMPUTE is not required. Statements of the type
n1 = arithexp
therefore belong to the keyword COMPUTE.
Statements of the type
COMPUTE n1 = n2.
are mere
assignments without arithmetic function and are assigned to the keyword
MOVE in the context of catchable runtime errors. To avoid confusion, it is better to write the following in these cases:
MOVE n2 TO n1. oder n1 = n2.
(Associated superclass: CX_SY_CONVERSION_ERROR)
This group contains runtime errors that may occur during the conversion between data types. You can
make an explicit conversion using MOVE, for example.
Implicit conversions are only caught in arithmetic expressions (see COMPUTE).
BCD_FIELD_OVERFLOW | CX_SY_CONVERSION_OVERFLOW |
CONVT_OVERFLOW | CX_SY_CONVERSION_OVERFLOW |
CONVT_CODEPAGE | CX_SY_CONVERSION_CODEPAGE |
CONVT_NO_NUMBER | CX_SY_CONVERSION_NO_NUMBER |
BCD_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW |
The following keywords are assigned to this exception group:
Statements of the type n2 = n1 are analogous to
MOVE n1 TO n2 and are assigned to the keyword MOVE.
(Associated superclass: CX_SY_CREATE_ERROR)
This group contains runtime errors that may occur during the creation of data objects.
CREATE_DATA_UNKNOWN_TYPE | CX_SY_CREATE_DATA_ERROR |
CREATE_DATA_NOT_ALLOWED_TYPE | CX_SY_CREATE_DATA_ERROR |
CREATE_DATA_LEN_NOT_ALLOWED | CX_SY_CREATE_DATA_ERROR |
CREATE_DATA_ILLEGAL_LENGTH | CX_SY_CREATE_DATA_ERROR |
CREATE_DATA_ILLEGAL_DECIMALS | CX_SY_CREATE_DATA_ERROR |
CREATE_DATA_ILLEGAL_INIT_SIZE | CX_SY_CREATE_DATA_ERROR |
The following keywords are assigned to this exception group:
(Associated superclass: CX_SY_CREATE_ERROR)
This group contains runtime errors that may occur during the creation of objects.
CREATE_OBJECT_CLASS_NOT_FOUND | CX_SY_CREATE_OBJECT_ERROR |
CREATE_OBJECT_CLASS_ABSTRACT | CX_SY_CREATE_OBJECT_ERROR |
CREATE_OBJECT_CREATE_PRIVATE | CX_SY_CREATE_OBJECT_ERROR |
CREATE_OBJECT_CREATE_PROTECTED | CX_SY_CREATE_OBJECT_ERROR |
The following keywords are assigned to this exception group:
(Associated superclass: CX_SY_DATA_ACCESS_ERROR)
This group contains runtime errors that may occur during subfield access (with offset/length) to data objects.
DATA_OFFSET_NEGATIVE | CX_SY_RANGE_OUT_OF_BOUNDS |
DATA_LENGTH_NEGATIVE | CX_SY_RANGE_OUT_OF_BOUNDS |
DATA_LENGTH_0 | CX_SY_RANGE_OUT_OF_BOUNDS |
DATA_LENGTH_TOO_LARGE | CX_SY_RANGE_OUT_OF_BOUNDS |
DATA_OFFSET_LENGTH_TOO_LARGE | CX_SY_RANGE_OUT_OF_BOUNDS |
REFI_WRONG_SECTION | CX_SY_RANGE_OUT_OF_BOUNDS |
STRING_OFFSET_NEGATIVE | CX_SY_RANGE_OUT_OF_BOUNDS |
STRING_OFFSET_TOO_LARGE | CX_SY_RANGE_OUT_OF_BOUNDS |
STRING_LENGTH_NEGATIVE | CX_SY_RANGE_OUT_OF_BOUNDS |
STRING_LENGTH_TOO_LARGE | CX_SY_RANGE_OUT_OF_BOUNDS |
STRING_OFFSET_LENGTH_TOO_LARGE | CX_SY_RANGE_OUT_OF_BOUNDS |
DATA_OFFSET_LENGTH_NOT_ALLOWED | CX_SY_OFFSET_NOT_ALLOWED |
Since a subfield access can occur in almost all statements, no keywords can be assigned.
(Associated superclass: CX_SY_DYN_CALL_ERROR)
This group contains runtime errors that may occur during a dynamic method call. These are normally errors that trigger a syntax error if the call is static.
DYN_CALL_METH_CLASS_ABSTRACT | CX_SY_DYN_CALL_ILLEGAL_CLASS |
DYN_CALL_METH_CLASS_NOT_FOUND | CX_SY_DYN_CALL_ILLEGAL_CLASS |
DYN_CALL_METH_CLASSCONSTRUCTOR | CX_SY_DYN_CALL_ILLEGAL_METHOD |
DYN_CALL_METH_CONSTRUCTOR | CX_SY_DYN_CALL_ILLEGAL_METHOD |
DYN_CALL_METH_NOT_FOUND | CX_SY_DYN_CALL_ILLEGAL_METHOD |
DYN_CALL_METH_NO_CLASS_METHOD | CX_SY_DYN_CALL_ILLEGAL_METHOD |
DYN_CALL_METH_PRIVATE | CX_SY_DYN_CALL_ILLEGAL_METHOD |
DYN_CALL_METH_PROTECTED | CX_SY_DYN_CALL_ILLEGAL_METHOD |
DYN_CALL_METH_EXCP_NOT_FOUND | CX_SY_DYN_CALL_EXCP_NOT_FOUND |
DYN_CALL_METH_PARAM_KIND | CX_SY_DYN_CALL_ILLEGAL_TYPE |
DYN_CALL_METH_PARAM_LITL_MOVE | CX_SY_DYN_CALL_ILLEGAL_TYPE |
DYN_CALL_METH_PARAM_TAB_TYPE | CX_SY_DYN_CALL_ILLEGAL_TYPE |
DYN_CALL_METH_PARAM_TYPE | CX_SY_DYN_CALL_ILLEGAL_TYPE |
DYN_CALL_METH_PARAM_MISSING | CX_SY_DYN_CALL_PARAM_MISSING |
DYN_CALL_METH_PARREF_INITIAL | CX_SY_DYN_CALL_PARAM_MISSING |
DYN_CALL_METH_PARAM_NOT_FOUND | CX_SY_DYN_CALL_PARAM_NOT_FOUND |
DYN_CALL_METH_REF_IS_INITIAL | CX_SY_REF_IS_INITIAL |
The following keywords are assigned to this exception group:
(Associated superclass: CX_SY_FILE_ACCESS_ERROR)
This group contains runtime errors that may occur during file access. Typical examples are if the system cannot find the file, if no more space is available to write or create the file, or if the authorization to access the file is missing.
DATASET_CANT_CLOSE | CX_SY_FILE_CLOSE |
DATASET_CANT_OPEN | CX_SY_FILE_OPEN |
EXPORT_DATASET_CANNOT_OPEN | CX_SY_FILE_OPEN |
DATASET_WRITE_ERROR | CX_SY_FILE_IO |
DATASET_READ_ERROR | CX_SY_FILE_IO |
EXPORT_DATASET_WRITE_ERROR | CX_SY_FILE_IO |
DATASET_SEEK_ERROR | CX_SY_FILE_POSITION |
DATASET_NO_POSITION | CX_SY_FILE_POSITION |
DATASET_READ_ONLY | CX_SY_FILE_OPEN_MODE |
DATASET_NOT_OPEN | CX_SY_FILE_OPEN_MODE |
OPEN_DATASET_NO_AUTHORITY | CX_SY_FILE_AUTHORITY |
OPEN_PIPE_NO_AUTHORITY | CX_SY_FILE_AUTHORITY |
DATASET_TOO_MANY_FILES | CX_SY_TOO_MANY_FILES |
DATASET_NO_PIPE | CX_SY_PIPES_NOT_SUPPORTED |
The following keywords are assigned to this exception group:
CLOSE, variant: CLOSE DATASET...
DELETE, variant: DELETE DATASET ...
EXPORT, variant: EXPORT ... TO DATASET ...
OPEN, variant: OPEN DATASET...
READ, variant: READ DATASET...
(Common class: CX_SY_IMPORT_MISMATCH_ERROR)
This group contains runtime errors that may occur during the import of data
if the type or the length of the data stored is not identical with that of the target type.
CONNE_IMPORT_WRONG_COMP_DECS | CX_SY_IMPORT_MISMATCH_ERROR |
CONNE_IMPORT_WRONG_COMP_LENG | CX_SY_IMPORT_MISMATCH_ERROR |
CONNE_IMPORT_WRONG_COMP_TYPE | CX_SY_IMPORT_MISMATCH_ERROR |
CONNE_IMPORT_WRONG_FIELD_DECS | CX_SY_IMPORT_MISMATCH_ERROR |
CONNE_IMPORT_WRONG_FIELD_LENG | CX_SY_IMPORT_MISMATCH_ERROR |
CONNE_IMPORT_WRONG_FIELD_TYPE | CX_SY_IMPORT_MISMATCH_ERROR |
CONNE_IMPORT_WRONG_OBJECT_TYPE | CX_SY_IMPORT_MISMATCH_ERROR |
CONNE_IMPORT_WRONG_STRUCTURE | CX_SY_IMPORT_MISMATCH_ERROR |
IMPORT_ALIGNMENT_MISMATCH | CX_SY_IMPORT_MISMATCH_ERROR |
IMPORT_WRONG_END_POS | CX_SY_IMPORT_MISMATCH_ERROR |
The following keywords are assigned to this exception group:
(Common class: CX_SY_LOCALIZATION_ERROR)
This group contains runtime errors that may occur when you switch to another text environment. Typical examples are if the required language is not allowed or if the system wants to switch to a character set which has not been released.
TEXTENV_CODEPAGE_NOT_ALLOWED | CX_SY_LOCALIZATION_ERROR |
TEXTENV_INVALID | CX_SY_LOCALIZATION_ERROR |
TEXTENV_KEY_INVALID | CX_SY_LOCALIZATION_ERROR |
The following keywords are assigned to this exception group:
SET, Variante: SET LOCALE ...
(Associated superclass: CX_SY_REMOTE_CALL_ERROR)
This group contains runtime errors that may occur during calls in remote systems (currently only CALL METHOD). Typical examples are network errors or the unexpected termination of the connection.
RMC_COMMUNICATION_FAILURE | CX_SY_RMC_COMM_FAILURE |
RMC_INVALID_STATUS | CX_SY_RMC_INVALID_STATUS |
RMC_SYSTEM_FAILURE | CX_SY_RMC_SYSTEM_FAILURE |
The following keywords are assigned to this exception group:
ASSIGN_CASTING_ILLEGAL_CAST | CX_SY_ASSIGN_CAST_ILLEGAL_CAST |
ASSIGN_CASTING_UNKNOWN_TYPE | CX_SY_ASSIGN_CAST_UNKNOWN_TYPE |
ASSIGN_FIELD_NOT_IN_RANGE | CX_SY_ASSIGN_OUT_OF_RANGE |
DATASET_OFFSET_TOO_LARGE | CX_SY_FILE_POSITION |
DYN_CALL_METH_NOT_IMPLEMENTED | CX_SY_DYN_CALL_ILLEGAL_METHOD |
EXPORT_BUFFER_NO_MEMORY | CX_SY_EXPORT_BUFFER_NO_MEMORY |
GENERATE_SUBPOOL_DIR_FULL | CX_SY_GENERATE_SUBPOOL_FULL |
MOVE_CAST_ERROR | CX_SY_MOVE_CAST_ERROR |
PERFORM_PROGRAM_NAME_TOO_LONG | CX_SY_PROGRAM_NOT_FOUND |
REPLACE_INFINITE_LOOP | CX_SY_REPLACE_INFINITE_LOOP |