Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Handling unexpected errors/situations in an ABAP program

Former Member
0 Likes
4,191

Hi,

if i come across a situation where i need to handle a runtime error unexpectedly what should be my approach.

for eg. if i build a dynamic select statement and if my logic goes wrong the program flow should proceed normally as if nothing has happened 'with out giving me a short dump' . what if im not sure about the type of error thats going to show up, is there any way?

your help will be appreciated.

Regards,

ravi.

Hi,

if i come across a situation where i need to handle a runtime error unexpectedly what should be my approach.

for eg. if i build a dynamic select statement and if my logic goes wrong the program flow should proceed normally as if nothing has happened 'with out giving me a short dump' . what if im not sure about the type of error thats going to show up, is there any way?

your help will be appreciated.

Regards,

ravi.

1 REPLY 1
Read only

Former Member
0 Likes
2,124

Hi Ravi

Not all exceptions can be overridden. FYI, Below are a list of exceptions that can be handled:

Alphabetical Overview of Catchable Runtime Errors

Below you find an alphabetical list of all catchable runtime errors. For each runtime error, the predefined exception class assigned is specified which is used to handle the respective runtime error as of Release 6.10. If an exception class is assigned to more than one catchable runtime error, it may contain as many message texts as required which you can find in the Class Builder on the Texts tab.

Almost all of the runtime errors listed here are combined together in exception groups. These exception groups are also assigned those ABAP keywords at which the runtime errors contained can be caught.

ADDF_INT_OVERFLOW

Overflow at addition, type I ( ADD ... UNTIL / ADD ... FROM ... TO)

Exception class: CX_SY_ARITHMETIC_OVERFLOW

ASSIGN_CASTING_ILLEGAL_CAST

The components of the source field type and the target type which are strings, tables, or references do not have exactly the same offset and type.

Exception class: CX_SY_ASSIGN_CAST_ILLEGAL_CAST

ASSIGN_CASTING_UNKNOWN_TYPE

The type specified at runtime is unknown.

Exception class: CX_SY_ASSIGN_CAST_UNKNOWN_TYPE

ASSIGN_FIELD_NOT_IN_RANGE

The field is not within the RANGE specified.

Exception class: CX_SY_ASSIGN_OUT_OF_RANGE

BCD_FIELD_OVERFLOW

Overflow at conversion / arithmetic operation (type P, with specified length)

Exception class: CX_SY_CONVERSION_OVERFLOW

BCD_OVERFLOW

Overflow at conversion / arithmetic operation (type P)

Exception class: CX_SY_ARITHMETIC_OVERFLOW

BCD_ZERODIVIDE

Division by 0 (type P)

Exception class: CX_SY_ZERODIVIDE

COMPUTE_ACOS_DOMAIN

Invalid call of the mathematical function ACOS

Exception class: CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_ASIN_DOMAIN

Invalid call of the mathematical function ASIN

Exception class: CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_ATAN_DOMAIN

Invalid call of the mathematical function ATAN

Exception class: CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_BCD_OVERFLOW

Overflow at arithmetic operation (all operands of type P)

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_COSH_DOMAIN

Invalid call of the mathematical function COSH

Exception class: CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_COSH_OVERFLOW

Overflow at mathematical function COSH

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_COS_DOMAIN

Invalid call of the mathematical function COS

Exception class: CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_COS_LOSS

Inaccurate result of function COS

Exception class: CX_SY_PRECISION_LOSS

COMPUTE_EXP_DOMAIN

Invalid call of the mathematical function EXP

Exception class: CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_EXP_RANGE

Overflow or underflow at mathematical function EXP

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_FLOAT_DIV_OVERFLOW

Overflow at division (type F)

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_FLOAT_MINUS_OVERFLOW

Overflow at subtraction (type F)

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_FLOAT_PLUS_OVERFLOW

Overflow at addition (type F)

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_FLOAT_TIMES_OVERFLOW

Overflow at multiplication (type F)

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_FLOAT_ZERODIVIDE

Division by 0 (type F)

Exception class: CX_SY_ZERODIVIDE

COMPUTE_INT_ABS_OVERFLOW

Integer overflow while calculating the absolute value

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_INT_DIV_OVERFLOW

Integer overflow at division

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_INT_MINUS_OVERFLOW

Integer overflow at subtraction

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_INT_PLUS_OVERFLOW

Integer overflow at addition

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_INT_TIMES_OVERFLOW

Integer overflow at multiplication

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_INT_ZERODIVIDE

Division by 0 (type I)

Exception class: CX_SY_ZERODIVIDE

COMPUTE_LOG10_ERROR

Invalid call of the mathematical function LOG10

Exception classes: CX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_LOG_ERROR

Invalid call of the mathematical function LOG

Exception classes: CX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_MATH_DOMAIN

Invalid call of a mathematical function

Exception class: CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_MATH_ERROR

Error performing a mathematical function

Exception class: None since this runtime error can no longer be caught

COMPUTE_MATH_LOSS

Inaccurate result of a mathematical function

Exception class: CX_SY_PRECISION_LOSS

COMPUTE_MATH_OVERFLOW

Overflow at a mathematical function

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_MATH_UNDERFLOW

Underflow at a mathematical function

Exception class: None since exception no longer occurs

COMPUTE_POW_DOMAIN

Invalid argument when using powers

Exception class: CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_POW_RANGE

Overflow or underflow when using powers

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_SINH_DOMAIN

Invalid call of the mathematical function SINH

Exception class: CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_SINH_OVERFLOW

Overflow at mathematical function SINH

Exception class: CX_SY_ARITHMETIC_OVERFLOW

COMPUTE_SIN_DOMAIN

Invalid call of the mathematical function SIN

Exception class: CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_SIN_LOSS

Inaccurate result of the function SIN

Exception class: CX_SY_PRECISION_LOSS

COMPUTE_SQRT_DOMAIN

Invalid call of the mathematical function SQRT

Exception class: CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_TANH_DOMAIN

Invalid call of the mathematical function TANH

Exception class: CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_TAN_DOMAIN

Invalid call of the mathematical function TAN

Exception class: CX_SY_ARG_OUT_OF_DOMAIN

COMPUTE_TAN_LOSS

Inaccurate result of the function TAN

Exception class: CX_SY_PRECISION_LOSS

CONNE_IMPORT_WRONG_COMP_DECS

Import error; a component of a structured type in the dataset has wrong decimal places

Exception class: CX_SY_IMPORT_MISMATCH_ERROR

CONNE_IMPORT_WRONG_COMP_LENG

Import error; a component of a structured type in the dataset has the wrong length

Exception class: CX_SY_IMPORT_MISMATCH_ERROR

CONNE_IMPORT_WRONG_COMP_TYPE

Import error; a component of a structured type in the dataset has the wrong type

Exception class: CX_SY_IMPORT_MISMATCH_ERROR

CONNE_IMPORT_WRONG_FIELD_DECS

Import error; a field in the dataset has wrong decimal places

Exception class: CX_SY_IMPORT_MISMATCH_ERROR

CONNE_IMPORT_WRONG_FIELD_LENG

Import error; a field in the dataset has the wrong length

Exception class: CX_SY_IMPORT_MISMATCH_ERROR

CONNE_IMPORT_WRONG_FIELD_TYPE

Import error; a field in the dataset has the wrong type

Exception class: CX_SY_IMPORT_MISMATCH_ERROR

CONNE_IMPORT_WRONG_OBJECT_TYPE

Import error; type conflict between simple and structured data types

Exception class: CX_SY_IMPORT_MISMATCH_ERROR

CONNE_IMPORT_WRONG_STRUCTURE

Import error; type conflict between structured objects

Exception class: CX_SY_IMPORT_MISMATCH_ERROR

CONVT_CODEPAGE

Character set conversion not possible for one or more characters

Exception class: CX_SY_CONVERSION_CODEPAGE

CONVT_CODEPAGE_INIT

Conversion of texts between code pages not supported

Exception class: CX_SY_CODEPAGE_CONVERTER_INIT

CONVT_NO_NUMBER

Value to be converted cannot be interpreted as a number

Exception class: CX_SY_CONVERSION_NO_NUMBER

CONVT_OVERFLOW

Overflow at conversion (all types, not type P)

Exception class: CX_SY_CONVERSION_OVERFLOW

CREATE_DATA_ILLEGAL_DECIMALS

Invalid value for the addition DECIMALS

Exception class: CX_SY_CREATE_DATA_ERROR

CREATE_DATA_ILLEGAL_INIT_SIZE

Invalid value for the addition INITIAL SIZE

Exception class: CX_SY_CREATE_DATA_ERROR

CREATE_DATA_ILLEGAL_LENGTH

Invalid value for the addition LENGTH

Exception class: CX_SY_CREATE_DATA_ERROR

CREATE_DATA_LEN_NOT_ALLOWED

The addition LENGTH was used for a type other than C, N, X, or P

Exception class: CX_SY_CREATE_DATA_ERROR

CREATE_DATA_NOT_ALLOWED_TYPE

The type specified dynamically in the addition TYPE is not typed completely.

Exception class: CX_SY_CREATE_DATA_ERROR

CREATE_DATA_UNKNOWN_TYPE

The type specified in the addition TYPE is unknown.

Exception class: CX_SY_CREATE_DATA_ERROR

CREATE_OBJECT_CLASS_ABSTRACT

You attempted to instantiate an abstract class.

Exception class: CX_SY_CREATE_OBJECT_ERROR

CREATE_OBJECT_CLASS_NOT_FOUND

The class specified in the dynamic CREATE OBJECT was not found.

Exception class: CX_SY_CREATE_OBJECT_ERROR

CREATE_OBJECT_CREATE_PRIVATE

You attempted to create an object of a class defined as 'CREATE PRIVATE'.

Exception class: CX_SY_CREATE_OBJECT_ERROR

CREATE_OBJECT_CREATE_PROTECTED

You attempted to create an object of a class defined as 'CREATE PROTECTED'.

Exception class: CX_SY_CREATE_OBJECT_ERROR

DATA_LENGTH_NEGATIVE

Invalid subfield access: Length negative

Exception class: CX_SY_RANGE_OUT_OF_BOUNDS

DATA_LENGTH_0

Invalid subfield access: Length 0

Exception class: CX_SY_RANGE_OUT_OF_BOUNDS

DATA_LENGTH_TOO_LARGE

Invalid subfield access: Length too large

Exception class: CX_SY_RANGE_OUT_OF_BOUNDS

DATA_OFFSET_NEGATIVE

Invalid subfield access: Offset negative

Exception class: CX_SY_RANGE_OUT_OF_BOUNDS

DATA_OFFSET_LENGTH_TOO_LARGE

Invalid subfield access: Offset + length too large

Exception class: CX_SY_RANGE_OUT_OF_BOUNDS

DATA_OFFSET_LENGTH_NOT_ALLOWED

Invalid subfield access: Inadequate type

Exception class: CX_SY_OFFSET_NOT_ALLOWED

DATASET_CANT_CLOSE

File could not be closed; there might be no more space in the file system.

Exception class: CX_SY_FILE_CLOSE

DATASET_CANT_OPEN

File cannot be opened

Exception class: CX_SY_FILE_OPEN

DATASET_NO_PIPE

OPEN DATASET with the addition FILTER is not supported on the current operating system.

Exception class: CX_SY_PIPES_NOT_SUPPORTED

DATASET_NO_POSITION

Access to current read/write position of file not possible

Exception class: CX_SY_FILE_POSITION

DATASET_NOT_OPEN

File not open

Exception class: CX_SY_FILE_OPEN_MODE

DATASET_OFFSET_TO_LARGE

Offset specified exceeds the system limit

Exception class: CX_SY_FILE_POSITION

DATASET_PIPE_CLOSED

Pipe for file closed

Exception class: CX_SY_PIPE_REOPEN

DATASET_READ_ERROR

Error reading a file

Exception class: CX_SY_FILE_IO

DATASET_READ_ONLY

File opened in read-only mode

Exception class: CX_SY_FILE_OPEN_MODE

DATASET_SEEK_ERROR

Error positioning in a file

Exception class: CX_SY_FILE_POSITION

DATASET_TOO_MANY_FILES

Maximum number of open files exceeded

Exception class: CX_SY_TOO_MANY_FILES

DATASET_WRITE_ERROR

Error writing a file

Exception class: CX_SY_FILE_IO

DYN_CALL_METH_CLASSCONSTRUCTOR

You attempted to call the class constructor.

Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD

DYN_CALL_METH_CLASS_ABSTRACT

You attempted to call an abstract method.

Exception class: CX_SY_DYN_CALL_ILLEGAL_CLASS

DYN_CALL_METH_CLASS_NOT_FOUND

You attempted to call a method of a class that does not exist.

Exception class: CX_SY_DYN_CALL_ILLEGAL_CLASS

DYN_CALL_METH_CONSTRUCTOR

You attempted to call the instance constructor.

Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD

DYN_CALL_METH_EXCP_NOT_FOUND

You attempted to catch an unknown exception.

Exception class: CX_SY_DYN_CALL_EXCP_NOT_FOUND

DYN_CALL_METH_NOT_FOUND

You attempted to call an unknown method.

Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD

DYN_CALL_METH_NOT_IMPLEMENTED

You attempted to call a method not yet implemented.

Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD

DYN_CALL_METH_NO_CLASS_METHOD

You attempted to call an instance method through a class.

Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD

DYN_CALL_METH_PARAM_KIND

You attempted to pass a parameter with a wrong parameter type.

Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE

DYN_CALL_METH_PARAM_LITL_MOVE

You attempted to pass a constant actual parameter to a formal EXPORTING, CHANGING, or RETURNING parameter.

Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE

DYN_CALL_METH_PARAM_MISSING

A required parameter was not filled.

Exception class: CX_SY_DYN_CALL_PARAM_MISSING

DYN_CALL_METH_PARAM_NOT_FOUND

You attempted to pass an unknown parameter.

Exception class: CX_SY_DYN_CALL_PARAM_NOT_FOUND

DYN_CALL_METH_PARAM_TAB_TYPE

You attempted to pass a parameter with a wrong table type.

Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE

DYN_CALL_METH_PARAM_TYPE

You attempted to pass a parameter with a wrong type.

Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE

DYN_CALL_METH_PARREF_INITIAL

An initial data reference was passed for a required parameter.

Exception class: CX_SY_DYN_CALL_PARAM_MISSING

DYN_CALL_METH_PRIVATE

You attempted to call a private method outside.

Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD

DYN_CALL_METH_PROTECTED

You attempted to call a protected method outside.

Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD

DYN_CALL_METH_REF_IS_INITIAL

You attempted to call a method to an initial reference.

Exception class: CX_SY_REF_IS_INITIAL

EXPORT_BUFFER_NO_MEMORY

The EXPORT data cluster is too large for the application buffer.

Exception class: CX_SY_EXPORT_BUFFER_NO_MEMORY

EXPORT_DATASET_CANNOT_OPEN

The IMPORT/EXPORT statement was unable to open the file.

Exception class: CX_SY_FILE_OPEN

EXPORT_DATASET_WRITE_ERROR

The Export statement could not write the file.

Exception class: CX_SY_FILE_IO

GENERATE_SUBPOOL_DIR_FULL

The system is unable to generate another temporary subroutine pool.

Exception class: CX_SY_GENERATE_SUBPOOL_FULL

IMPORT_ALIGNMENT_MISMATCH

Import error; identical sequence of components but with type conflict or with different integration into structured data types

Exception class: CX_SY_IMPORT_MISMATCH_ERROR

IMPORT_TYPE_MISMATCH

Import error; only at IMPORT...FROM MEMORY | FROM SHARED BUFFER...

Exception class: None since this runtime error can not longer be caught

IMPORT_WRONG_END_POS

Import error; dataset has a different length.

Exception class: CX_SY_IMPORT_MISMATCH_ERROR

MOVE_CAST_ERROR

Type conflict assigning between object and/or interface references (only MOVE...?TO... or operator ?=)

Exception class: CX_SY_MOVE_CAST_ERROR

OPEN_DATASET_NO_AUTHORITY

No authorization to access a file

Exception class: CX_SY_FILE_AUTHORITY

OPEN_PIPE_NO_AUTHORITY

No authorization to access a file (OPEN DATASET...FILTER...)

Exception class: CX_SY_FILE_AUTHORITY

PERFORM_PROGRAM_NAME_TOO_LONG

Invalid program name in the PERFORM statement

Exception class: CX_SY_PROGRAM_NOT_FOUND

REFI_WRONG_SECTION

Wrong offset/length specification in the REPLACE statement

Exception class: CX_SY_RANGE_OUT_OF_BOUNDS

REPLACE_INFINITE_LOOP

SECTION of length 0 in the REPLACE statement

Exception class: CX_SY_REPLACE_INFINITE_LOOP

RMC_COMMUNICATION_FAILURE

Communication error during Remote Method Call

Exception class: CX_SY_RMC_COMM_FAILURE

RMC_INVALID_STATUS

State error during Remote Method Call

Exception class: CX_SY_RMC_INVALID_STATUS

RMC_SYSTEM_FAILURE

System error during Remote Method Call

Exception class: CX_SY_RMC_SYSTEM_FAILURE

STRING_LENGTH_NEGATIVE

Invalid access with negative length to a string

Exception class: CX_SY_RANGE_OUT_OF_BOUNDS

STRING_LENGTH_TOO_LARGE

Invalid access to a string (length too large)

Exception class: CX_SY_RANGE_OUT_OF_BOUNDS

STRING_OFFSET_NEGATIVE

Invalid access with negative offset to a string

Exception class: CX_SY_RANGE_OUT_OF_BOUNDS

STRING_OFFSET_TOO_LARGE

Invalid access to a string (offset too large)

Exception class: CX_SY_RANGE_OUT_OF_BOUNDS

STRING_OFFSET_LENGTH_TOO_LARGE

Invalid access to a string (offset + length too large)

Exception class: CX_SY_LOCALIZATION_ERROR

TEXTENV_CODEPAGE_NOT_ALLOWED

Character set not released in the system (SET LOCALE...)

TEXTENV_INVALID

Error setting the text environment (SET LOCALE...)

Exception class: CX_SY_LOCALIZATION_ERROR

TEXTENV_KEY_INVALID

In SET LOCALE...: Value disallowed by the system in the additions LANGUAGE, COUNTRY, or MODIFIER

Exception class: CX_SY_LOCALIZATION_ERROR

Assignment of Catchable Runtime Errors to Exception Groups

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 with 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.

Exception group: ARITHMETIC_ERRORS

(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:

ADD

ADD-CORRESPONDING

COMPUTE

DIVIDE

DIVIDE-CORRESPONDING

MULTIPLY

MULTIPLY-CORRESPONDING

SUBTRACT

SUBTRACT-CORRESPONDING

Notes

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.

Exception group: CONVERSION_ERRORS

(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:

ADD

ADD-CORRESPONDING

COMPUTE

DIVIDE

DIVIDE-CORRESPONDING

MOVE

MOVE-CORRESPONDING

MULTIPLY

MULTIPLY-CORRESPONDING

PACK

SUBTRACT

SUBTRACT-CORRESPONDING

UNPACK

Note

Statements of the type n2 = n1 are analogous to MOVE n1 TO n2 and are assigned to the keyword MOVE.

Exception group: CREATE_DATA_ERRORS

(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:

CREATE DATA

Exception group: CREATE_OBJECT_ERRORS

(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:

CREATE OBJECT

Exception group: DATA_ACCESS_ERRORS

(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.

Exception group: DYNAMIC_CALL_METHOD_ERRORS

(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:

CALL METHOD

Exception group: FILE_ACCESS_ERRORS

(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...

TRANSFER

Exception group: IMPORT_MISMATCH_ERRORS

(Common class: CX_SY_IMPORT_MISMATCH_ERROR)

This group contains runtime errors that may occur during the import of data

from the ABAP memory,

from the database,

from the SHARED BUFFER, or

from a file

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:

IMPORT

Exception group: LOCALIZATION_ERRORS

(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 ...

Exception group: REMOTE_CALL_ERRORS

(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:

CALL METHOD

Not assigned to an 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

Kind Regards

Eswar