技术开发 频道

ABAP异常处理

    4、代码样例
    a)RAISING cx1 ... cxn
    form adbc_exists_view using view_name type dd25l-viewname
    changing subrc type sy-subrc
    raising cx_sql_exception.
    data: stmt type string,
    ref type ref to data,
    stmt_ref type ref to cl_sql_statement,
    res_ref type ref to cl_sql_result_set,
    cnt type sy-tabix.
    subrc = 4.
    create object stmt_ref.
    get reference of view_name into ref.
    stmt_ref->set_param( ref ).
    stmt = 'select count(*) from user_views where view_name = ?'.
    res_ref = stmt_ref->execute_query( stmt ).
    * Host-Variable zur Ergebnisaufnahme zuordnen
    get reference of cnt into ref.
    res_ref->set_param( ref ).
    res_ref->next( ).
    if cnt = 1.
    subrc = 0.
    endif.
    res_ref->close( ).
    endform.
    form exists_view using    view_name type dd25l-viewname
    changing subrc     type sy-subrc.
    try.
    perform adbc_exists_view(sdb4fora)
    using view_name
    changing subrc.
    catch cx_sql_exception.
    subrc = 8.
    endtry.
    endform.
    b)基于类的异常代码样例
    5、错误与异常类对应关系
    Exception group: ARITHMETIC_ERRORS
    Class-based Exceptions Definition
    *----------------------------------------------------------------------*
    *       CLASS class_exception DEFINITION
    *----------------------------------------------------------------------*
    * All Exception Class must inherit from Class CX_ROOT or its subclass
    *----------------------------------------------------------------------*
    CLASS class_exception DEFINITION INHERITING FROM cx_static_check.
    PUBLIC SECTION.
    METHODS write_msg.
    ENDCLASS.                    "CX_SAMPLE_EXCEPTION DEFINITION
    Class-based Exceptions Implementation
    *----------------------------------------------------------------------*
    *       CLASS class_exception IMPLEMENTATION
    *----------------------------------------------------------------------*
    CLASS class_exception IMPLEMENTATION.
    METHOD  write_msg.
    WRITE / 'Method of Class class_exception'.
    ENDMETHOD.                    ":
    ENDCLASS.                    "class_exception IMPLEMENTATION
    Class main Definition
    *----------------------------------------------------------------------*
    *       CLASS main DEFINITION
    *----------------------------------------------------------------------*
    CLASS main DEFINITION.
    PUBLIC SECTION.
    *   This method use the class exceptions class_exception
    *   to deal with error. To do this we use the statement RAISING
    METHODS action RAISING class_exception.
    ENDCLASS.                    "main DEFINITION
    Class main Implementation
    *----------------------------------------------------------------------*
    *       CLASS main IMPLEMENTATION
    *----------------------------------------------------------------------*
    CLASS main IMPLEMENTATION.
    METHOD action.
    *   Here we're raising an exception that should be Treated by
    *   exception class class_exception
    RAISE EXCEPTION TYPE class_exception.
    ENDMETHOD.                    "action
    ENDCLASS.                    "main IMPLEMENTATION
    Defining Objects
    DATA o_exception TYPE REF TO class_exception.
    DATA o_main      TYPE REF TO main.
    Instance Creation
    START-OF-SELECTION.
    CREATE OBJECT o_main.
    Calling Methods
    * The statement TRY must be used to define a block that CATCH the exceptions
    TRY.
    o_main->action( ).
    *   The Statement CATCH define a block that catches the exceptions of the
    *   exception class class_exception
    CATCH class_exception.
    WRITE / 'Exception Caught'.
    ENDTRY.
    * The statement TRY must be used to define a block that CATCH the exceptions
    TRY.
    o_main->action( ).
    *   The Statement CATCH define a block that catches the exceptions of the
    *   exception class class_exception
    CATCH class_exception INTO o_exception.
    WRITE / 'Exception Caught'.
    o_exception->write_msg( ).
    ENDTRY.
    (Associated superclass: CX_SY_ARITHMETIC_ERROR)
    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
    Exception group: CONVERSION_ERRORS
    (Associated superclass: CX_SY_CONVERSION_ERROR)
    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
    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
    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
    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
    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
    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
    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
    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
    6、类异常类树
    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

0
相关文章