众所周知,ABAP 所有的异常类都是派生自CX_ROOT里,而CX_ROOT里又有3个子类,分别是


  • CX_DYNAMIC_CHECK: 这些子类不需要任何处理。但是不处理异常的程序将被这些子类中止。
  • CX_NO_CHECK: 如果未处理异常,则这些子类将自动传播。
  • CX_STATIC_CHECK: 它们不会自动传播。您将需要自己进行处理,否则程序中将出现语法错误。

ABAP 异常类_ide

类异常类树

CX_SY_ROOT

|

|–CX_STATIC_CHECK

|

|–CX_DYNAMIC_CHECK

| |

| |–CX_SY_ARITHMETIC_ERROR

| | |

| | |–CX_SY_ZERODIVIDE

| | |

| | |–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_ASSIGN_CAST_UNKNOWN_TYPE

| | |

| | |–CX_SY_ASSIGN_OUT_OF_RANGE

| |

| |–CX_SY_CODEPAGE_CONVERTER_INIT

| |

| |–CX_SY_CONVERSION_ERROR

| | |

| | |–CX_SY_CONVERSION_OVERFLOW

| | |

| | |–CX_SY_CONVERSION_NO_NUMBER

| | |

| | |–CX_SY_CONVERSION_CODEPAGE

| | |

| | |–CX_SY_CONVERSION_BASE64

| | |

| | |–CX_SY_CONV_ILLEGAL_DATE_TIME

| |

| |–CX_SY_CREATE_ERROR

| | |

| | |–CX_SY_CREATE_OBJECT_ERROR

| | |

| | |–CX_SY_CREATE_DATA_ERROR

| |

| |–CX_SY_DATA_ACCESS_ERROR

| | |

| | |–CX_SY_RANGE_OUT_OF_BOUNDS

| | |

| | |–CX_SY_OFFSET_NOT_ALLOWED

| |

| |–CX_SY_DYN_CALL_ERROR

| | |

| | |–CX_SY_DYN_CALL_ILLEGAL_CLASS

| | |

| | |–CX_SY_DYN_CALL_ILLEGAL_FUNC

| | |

| | |–CX_SY_DYN_CALL_ILLEGAL_METHOD

| | |

| | |–CX_SY_DYN_CALL_PARAMETER_ERROR

| | |

| | |–CX_SY_DYN_CALL_EXCP_NOT_FOUND

| | |

| | |–CX_SY_DYN_CALL_ILLEGAL_TYPE

| | |

| | |–CX_SY_DYN_CALL_PARAM_MISSING

| | |

| | |–CX_SY_DYN_CALL_PARAM_NOT_FOUND

| |

| |–CX_SY_FILE_ACCESS_ERROR

| | |

| | |–CX_SY_FILE_AUTHORITY

| | |

| | |–CX_SY_FILE_CLOSE

| | |

| | |–CX_SY_FILE_IO

| | |

| | |–CX_SY_FILE_POSITION

| | |

| | |–CX_SY_FILE_OPEN_MODE

| | |

| | |–CX_SY_FILE_OPEN

| |

| |–CX_SY_GEN_SOURCE_TOO_WIDE

| |

| |–CX_SY_IMPORT_MISMATCH_ERROR

| |

| |–CX_SY_MOVE_CAST_ERROR

| |

| |–CX_SY_PROGRAM_NOT_FOUND

| |

| |–CX_SY_PROVIDE_EXCEPTION

| | |

| | |–CX_SY_PROVIDE_INTERVAL_OVERLAP

| | |

| | |–CX_SY_PROVIDE_TABLE_NOT_SORTED

| |

| |–CX_SY_READ_SRC_LINE_TOO_LONG

| |

| |–CX_SY_REF_IS_INITIAL

| |

| |–CX_SY_REPLACE_INFINITE_LOOP

| |

| |–CX_SY_SCAN_SOURCE_TOO_WIDE

| |

| |–CX_SY_SQL_ERROR

| | |

| | |–CX_SY_OPEN_SQL_ERROR

| | | |

| | | |–CX_SY_OPEN_SQL_DB

| | | |

| | | |–CX_SY_DYNAMIC_OSQL_ERROR

| | | |

| | | |–CX_SY_DYNAMIC_OSQL_SEMANTICS

| | | |

| | | |–CX_SY_DYNAMIC_OSQL_SYNTAX

| | |

| | |–CX_SY_NATIVE_SQL_ERROR

| |

| |–CX_SY_WRITE_SRC_LINE_TOO_LONG

|

|–CX_NO_CHECK

|

|–CX_SY_EXPORT_NO_SHARED_MEMORY

|

|–CX_SY_EXPORT_BUFFER_NO_MEMORY

|

|–CX_SY_GENERATE_SUBPOOL_FULL

|

|–CX_SY_LOCALIZATION_ERROR

|

|–CX_SY_NO_HANDLER

|

|–CX_SY_PIPES_NOT_SUPPORTED

|

|–CX_SY_PIPE_REOPEN

|

|–CX_SY_REMOTE_CALL_ERROR

| |

| |–CX_SY_RMC_COMM_FAILURE

| |

| |–CX_SY_RMC_INVALID_STATUS

| |

| |–CX_SY_RMC_SYSTEM_FAILURE

|

|–CX_SY_TOO_MANY_FILES