abap--关于异常的处理

文章转自http://blog.csdn.net/wren2004/article/details/5369700

一个简单的例程, 仅供参考.

DATA:   v_c TYPE p ,
        o_cx  TYPE REF TO cx_root.

TRY.
    v_c = 5 / 0.
  CATCH cx_root INTO o_cx.
    v_msg =  o_cx->if_message~get_text( ).
ENDTRY.


WRITE: v_msg.

1、异常分类
从sap 6.10开始,abap的异常分为两类:1)基于异常类的异常,2)非类异常。非类异常又分为系统定义异常(如:被0除异常)和用户自定义异常(用户自定义函数中由exception语句定义,raise语句产生的异常)。

异常有的是可以截获处理,用户可以截获做相应处理,系统将可以继续执行程序。如果用户不处理,系统将产生错误,并停止执行程序。有的异常为不可截获的错误异常,系统将直接产生错误,并停止执行程序。

2、异常处理语句
基于类异常相关语句:
a)TRY.
  ... guarded section
CATCH cx11 ... cx1n [INTO ex1].
  ... handlers for exceptions cx11 to cx1n
CATCH cx21 ... cx2m [INTO ex2].
  ... handlers for exceptions cx21 bis cx2m
  ... other handlers
CLEANUP.
  ... cleanup block
ENDTRY.

b)RAISE EXCEPTION TYPE class.


c)RAISING cx1 ... cxn


非类异常相关语句:
a)catch system-exceptions ARITHMETIC_ERRORS = 4.
....
endcatch.

c) raise (In function or method)

3、异常截获处理方法
Handling exceptions using/with exception classes 截获处理方法
data MYREF type ref to CX_SY_ARITHMETIC_ERROR.
data ERR_TEXT type STRING.
data RESULT type I.
try.
    RESULT = 1 / 0.
  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.
  RESULT = 1 / 0.
endcatch.
if SY-SUBRC = 4.
  ...
endif.

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_ZERODIVIDECX_SY_ZERODIVIDE
COMPUTE_FLOAT_ZERODIVIDECX_SY_ZERODIVIDE
COMPUTE_INT_ZERODIVIDECX_SY_ZERODIVIDE
ADDF_INT_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
BCD_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_BCD_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_COSH_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_EXP_RANGECX_SY_ARITHMETIC_OVERFLOW
COMPUTE_FLOAT_DIV_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_FLOAT_MINUS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_FLOAT_PLUS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_FLOAT_TIMES_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_INT_ABS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_INT_DIV_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_INT_MINUS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_INT_PLUS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_INT_TIMES_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_LOG10_ERRORCX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_LOG_ERRORCX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_MATH_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_POW_RANGECX_SY_ARITHMETIC_OVERFLOW
COMPUTE_SINH_OVERFLOWCX_SY_ARITHMETIC_OVERFLOW
COMPUTE_ACOS_DOMAINCX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_ASIN_DOMAINCX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_ATAN_DOMAINCX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_COSH_DOMAINCX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_COS_DOMAINCX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_EXP_DOMAINCX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_MATH_DOMAINCX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_POW_DOMAINCX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_SINH_DOMAINCX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_SIN_DOMAINCX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_SQRT_DOMAINCX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_TANH_DOMAINCX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_COS_LOSSCX_SY_PRECISION_LOSS
COMPUTE_MATH_LOSSCX_SY_PRECISION_LOSS
COMPUTE_SIN_LOSSCX_SY_PRECISION_LOSS
COMPUTE_TAN_LOSSCX_SY_PRECISION_LOSS
BCD_FIELD_OVERFLOWCX_SY_CONVERSION_OVERFLOW
 


 

Exception group: CONVERSION_ERRORS

(Associated superclass: CX_SY_CONVERSION_ERROR)

 

BCD_FIELD_OVERFLOWCX_SY_CONVERSION_OVERFLOW
CONVT_OVERFLOWCX_SY_CONVERSION_OVERFLOW
CONVT_CODEPAGECX_SY_CONVERSION_CODEPAGE
CONVT_NO_NUMBERCX_SY_CONVERSION_NO_NUMBER
BCD_OVERFLOWCX_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_TYPECX_SY_CREATE_DATA_ERROR
CREATE_DATA_NOT_ALLOWED_TYPECX_SY_CREATE_DATA_ERROR
CREATE_DATA_LEN_NOT_ALLOWEDCX_SY_CREATE_DATA_ERROR
CREATE_DATA_ILLEGAL_LENGTHCX_SY_CREATE_DATA_ERROR
CREATE_DATA_ILLEGAL_DECIMALSCX_SY_CREATE_DATA_ERROR
CREATE_DATA_ILLEGAL_INIT_SIZECX_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_FOUNDCX_SY_CREATE_OBJECT_ERROR
CREATE_OBJECT_CLASS_ABSTRACTCX_SY_CREATE_OBJECT_ERROR
CREATE_OBJECT_CREATE_PRIVATECX_SY_CREATE_OBJECT_ERROR
CREATE_OBJECT_CREATE_PROTECTEDCX_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_NEGATIVECX_SY_RANGE_OUT_OF_BOUNDS
DATA_LENGTH_NEGATIVECX_SY_RANGE_OUT_OF_BOUNDS
DATA_LENGTH_0CX_SY_RANGE_OUT_OF_BOUNDS
DATA_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDS
DATA_OFFSET_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDS
REFI_WRONG_SECTIONCX_SY_RANGE_OUT_OF_BOUNDS
STRING_OFFSET_NEGATIVECX_SY_RANGE_OUT_OF_BOUNDS
STRING_OFFSET_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDS
STRING_LENGTH_NEGATIVECX_SY_RANGE_OUT_OF_BOUNDS
STRING_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDS
STRING_OFFSET_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDS
DATA_OFFSET_LENGTH_NOT_ALLOWEDCX_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_ABSTRACTCX_SY_DYN_CALL_ILLEGAL_CLASS
DYN_CALL_METH_CLASS_NOT_FOUNDCX_SY_DYN_CALL_ILLEGAL_CLASS
DYN_CALL_METH_CLASSCONSTRUCTORCX_SY_DYN_CALL_ILLEGAL_METHOD
DYN_CALL_METH_CONSTRUCTORCX_SY_DYN_CALL_ILLEGAL_METHOD
DYN_CALL_METH_NOT_FOUNDCX_SY_DYN_CALL_ILLEGAL_METHOD
DYN_CALL_METH_NO_CLASS_METHODCX_SY_DYN_CALL_ILLEGAL_METHOD
DYN_CALL_METH_PRIVATECX_SY_DYN_CALL_ILLEGAL_METHOD
DYN_CALL_METH_PROTECTEDCX_SY_DYN_CALL_ILLEGAL_METHOD
DYN_CALL_METH_EXCP_NOT_FOUNDCX_SY_DYN_CALL_EXCP_NOT_FOUND
DYN_CALL_METH_PARAM_KINDCX_SY_DYN_CALL_ILLEGAL_TYPE
DYN_CALL_METH_PARAM_LITL_MOVECX_SY_DYN_CALL_ILLEGAL_TYPE
DYN_CALL_METH_PARAM_TAB_TYPECX_SY_DYN_CALL_ILLEGAL_TYPE
DYN_CALL_METH_PARAM_TYPECX_SY_DYN_CALL_ILLEGAL_TYPE
DYN_CALL_METH_PARAM_MISSINGCX_SY_DYN_CALL_PARAM_MISSING
DYN_CALL_METH_PARREF_INITIALCX_SY_DYN_CALL_PARAM_MISSING
DYN_CALL_METH_PARAM_NOT_FOUNDCX_SY_DYN_CALL_PARAM_NOT_FOUND
DYN_CALL_METH_REF_IS_INITIALCX_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_CLOSECX_SY_FILE_CLOSE
DATASET_CANT_OPENCX_SY_FILE_OPEN
EXPORT_DATASET_CANNOT_OPENCX_SY_FILE_OPEN
DATASET_WRITE_ERRORCX_SY_FILE_IO
DATASET_READ_ERRORCX_SY_FILE_IO
EXPORT_DATASET_WRITE_ERRORCX_SY_FILE_IO
DATASET_SEEK_ERRORCX_SY_FILE_POSITION
DATASET_NO_POSITIONCX_SY_FILE_POSITION
DATASET_READ_ONLYCX_SY_FILE_OPEN_MODE
DATASET_NOT_OPENCX_SY_FILE_OPEN_MODE
OPEN_DATASET_NO_AUTHORITYCX_SY_FILE_AUTHORITY
OPEN_PIPE_NO_AUTHORITYCX_SY_FILE_AUTHORITY
DATASET_TOO_MANY_FILESCX_SY_TOO_MANY_FILES
DATASET_NO_PIPECX_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_DECSCX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_COMP_LENGCX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_COMP_TYPECX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_FIELD_DECSCX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_FIELD_LENGCX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_FIELD_TYPECX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_OBJECT_TYPECX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_STRUCTURECX_SY_IMPORT_MISMATCH_ERROR
IMPORT_ALIGNMENT_MISMATCHCX_SY_IMPORT_MISMATCH_ERROR
IMPORT_WRONG_END_POSCX_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_ALLOWEDCX_SY_LOCALIZATION_ERROR
TEXTENV_INVALIDCX_SY_LOCALIZATION_ERROR
TEXTENV_KEY_INVALIDCX_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_FAILURECX_SY_RMC_COMM_FAILURE
RMC_INVALID_STATUSCX_SY_RMC_INVALID_STATUS
RMC_SYSTEM_FAILURECX_SY_RMC_SYSTEM_FAILURE
 

CALL METHOD

Not assigned to an exception group:

 

ASSIGN_CASTING_ILLEGAL_CASTCX_SY_ASSIGN_CAST_ILLEGAL_CAST
ASSIGN_CASTING_UNKNOWN_TYPECX_SY_ASSIGN_CAST_UNKNOWN_TYPE
ASSIGN_FIELD_NOT_IN_RANGECX_SY_ASSIGN_OUT_OF_RANGE
DATASET_OFFSET_TOO_LARGECX_SY_FILE_POSITION
DYN_CALL_METH_NOT_IMPLEMENTEDCX_SY_DYN_CALL_ILLEGAL_METHOD
EXPORT_BUFFER_NO_MEMORYCX_SY_EXPORT_BUFFER_NO_MEMORY
GENERATE_SUBPOOL_DIR_FULLCX_SY_GENERATE_SUBPOOL_FULL
MOVE_CAST_ERRORCX_SY_MOVE_CAST_ERROR
PERFORM_PROGRAM_NAME_TOO_LONGCX_SY_PROGRAM_NOT_FOUND
REPLACE_INFINITE_LOOPCX_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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值