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_S...
| | |--CX_SY_ARITHMETIC_OVERFLOW | | | | | |--CX_SY_ARG_OUT_OF_DOMAIN | | | | | |--CX_SY_PRECISION_LOSS | | | |--CX_SY_ASSIGN_ERROR | | | | | |--CX_SY_ASSIGN_CAST_ERROR | | | | | | | |--CX_SY_ASSIGN_CAST_ILLEGAL_CAST | | | | | | | |--CX_SY_ASSI...
RMC_INVALID_STATUSCX_SY_RMC_INVALID_STATUS RMC_SYSTEM_FAILURECX_SY_RMC_SYSTEM_FAILURE CALL METHOD Not assigned to an exception group: 6、类异常类树 CX_SY_ROOT | |--CX_STATIC_CHECK | |--CX_DYNAMIC_CHECK | | | |--CX_SY_ARITHMETIC_ERROR | | | | | |--CX_SY_ZERODIVIDE | | | ...
catch cx_sy_arithmetic_error into MYREF. ERR_TEXT = MYREF->GET_TEXT( ). endtry. Handling exceptions as catchable runtime errors (向后兼容6.10) 此异常处理sap建议使用try...endtry代替(错误和异常类对应关系参见第5部分)。 data RESULT type I. catch system-exceptions ARITHMETIC_ERRORS = 4. RES...
CX_SY_ARITHMETIC_ERROR: 算术运算错误。 CX_SY_CONVERSION_ERROR: 类型转换错误。 CX_SY_DYNAMIC_CALL_ERROR: 动态调用错误。 等等。 你也可以定义自己的异常类。 定义自定义异常类 要在ABAP 中定义一个自定义异常类,你需要创建一个继承自 CX_ROOT 的类。 CLASS lcl_my_exception DEFINITION INHERITING FROM ...
系统预定义异常:如cx_sy_arithmetic_overflow(算术溢出异常)、cx_sy_dynamic_osql_error(动态SQL错误异常)等,用于捕获系统级别的错误。 用户自定义异常:开发者可以根据自己的需求定义异常类,用于处理特定的业务逻辑错误。 3. ABAP中异常处理的基本流程 ABAP中的异常处理通常使用TRY...CATCH块来实现。以下是异常处理的...
data MYREF type ref to CX_SY_ARITHMETIC_ERROR. data ERR_TEXT type STRING. data RESULT type I. 1. 2. 3. 带入语法 try. RESULT = 1 / 0. catch cx_sy_arithmetic_error into MYREF. ERR_TEXT = MYREF->GET_TEXT( ). sy-subrc = 4. "改变系统变量 ...
CATCH cx_root INTO DATA(exc). CASE TYPE OF exc. WHEN TYPE cx_sy_arithmetic_error. out->display('Arithmetic error'). WHEN TYPE cx_sy_conversion_error. out->display('Conversion error'). WHEN OTHERS. out->display('Other error').
ENDTRY. CATCH CX_SY_ARITHMETIC_ERROR INTO orf_1. txt_1 = orf_1→GET_TEXT( ). CATCH CX_ROOT INTO orf_1. txt_1 = orf_1→GET_TEXT( ). ENDTRY. IF NOT txt_1 IS INITIAL. Write / txt_1. ENDIF. Write: / 'Final Result is:', res_1. 复制 在此示例中,如果数字大于 150,则会引...
|--CX_DYNAMIC_CHECK | | | |--CX_SY_ARITHMETIC_ERROR //运算 '&OPERATION&' 时发⽣算术错误 | | | | | |--CX_SY_ZERODIVIDE //除数为零 | | | | | |--CX_SY_ARITHMETIC_OVERFLOW //操作 &OPERATION& 中溢出 | | | | | |--CX_SY_ARG_O...