GUIDELINE
Runtime Errors When Accessing Data Objects
ABAP_BACKGROUND
Using data objects can cause runtime errors if the data object contains
unsuitable content or the access to the data object is unsuitable.
Examples:
Assigning values outside the value range of a target variable
Using values that cannot be converted to the required type. In other
words, a conversion rule exists but the source field content is not
convertible. For example, you are trying to assign a character field
(with content that cannot be interpreted as a number) to a numeric
field.
Access to parts of data objects (subfield access). Either offset
access/length access or the use of predefined subfunctions such as
substring .
ABAP_RULE
Preventing Runtime Errors When Accessing Data Objects
You need to prevent runtime errors that can occur when accessing data
objects. Robust applications should always be programmed to avoid these
errors.
ABAP_DETAILS
If it not possible to determine by filling data objects appropriately
whether subsequent access causes errors, then either the relevant
properties must be checked before data access or possible exceptions
(subclasses of CX_SY_CONVERSION_ERROR or
CX_SY_DATA_ACCESS_ERROR ) must be caught during data access.
Bad Example
The following source code illustrates a typical situation that can
easily cause a runtime error if the subarea defined by offset and
length is not defined in text .
DATA text TYPE string.
...
substring = text+offset(length).
...
Good Example
The following two source codes illustrate how the above example can be
changed to avoid runtime errors using prevention or exception handling.
IF strlen( text ) > offset + length.
substring = text+offset(length).
ELSE.
...
ENDIF.
TRY.
substring = text+offset(length).
CATCH cx_sy_range_out_of_bounds.
...
ENDTRY.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved