ABAP-基础-异常处理

2021-03-11 11:34:37 浏览数 (1)

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

代码语言:javascript复制
*----------------------------------------------------------------------* * 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

代码语言:javascript复制
*----------------------------------------------------------------------* * 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

代码语言:javascript复制
*----------------------------------------------------------------------* * CLASS main DEFINITION *----------------------------------------------------------------------* CLASS main DEFINITION. PUBLIC SECTION. * This method use the class exceptions class_exception * to deal with error. To dothis we use the statement RAISING METHODS action RAISING class_exception. ENDCLASS. "main DEFINITION

Class main Implementation

代码语言:javascript复制
*----------------------------------------------------------------------* * 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

代码语言:javascript复制
DATA o_exception TYPE REF TO class_exception. DATA o_main TYPE REF TO main.

Instance Creation

代码语言:javascript复制
START-OF-SELECTION. CREATE OBJECT o_main.

Calling Methods

代码语言:javascript复制
* 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.
代码语言:javascript复制
代码语言:javascript复制
(Associated superclass:CX_SY_ARITHMETIC_ERROR)BCD_ZERODIVIDECX_SY_ZERODIVIDECOMPUTE_FLOAT_ZERODIVIDECX_SY_ZERODIVIDECOMPUTE_INT_ZERODIVIDECX_SY_ZERODIVIDEADDF_INT_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWBCD_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_BCD_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_COSH_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_EXP_RANGECX_SY_ARITHMETIC_OVERFLOWCOMPUTE_FLOAT_DIV_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_FLOAT_MINUS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_FLOAT_PLUS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_FLOAT_TIMES_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_INT_ABS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_INT_DIV_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_INT_MINUS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_INT_PLUS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_INT_TIMES_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_LOG10_ERRORCX_SY_ARITHMETIC_OVERFLOW,CX_SY_ARG_OUT_OF_DOMAINCOMPUTE_LOG_ERRORCX_SY_ARITHMETIC_OVERFLOW,CX_SY_ARG_OUT_OF_DOMAINCOMPUTE_MATH_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_POW_RANGECX_SY_ARITHMETIC_OVERFLOW

COMPUTE_SINH_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_ACOS_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_ASIN_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_ATAN_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_COSH_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_COS_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_EXP_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_MATH_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_POW_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_SINH_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_SIN_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_SQRT_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_TANH_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_COS_LOSSCX_SY_PRECISION_LOSSCOMPUTE_MATH_LOSSCX_SY_PRECISION_LOSSCOMPUTE_SIN_LOSSCX_SY_PRECISION_LOSSCOMPUTE_TAN_LOSSCX_SY_PRECISION_LOSSBCD_FIELD_OVERFLOWCX_SY_CONVERSION_OVERFLOW

 Exception group: CONVERSION_ERRORS(Associated superclass:CX_SY_CONVERSION_ERROR)BCD_FIELD_OVERFLOWCX_SY_CONVERSION_OVERFLOWCONVT_OVERFLOWCX_SY_CONVERSION_OVERFLOWCONVT_CODEPAGECX_SY_CONVERSION_CODEPAGECONVT_NO_NUMBERCX_SY_CONVERSION_NO_NUMBERBCD_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_ERRORCREATE_DATA_NOT_ALLOWED_TYPECX_SY_CREATE_DATA_ERRORCREATE_DATA_LEN_NOT_ALLOWEDCX_SY_CREATE_DATA_ERRORCREATE_DATA_ILLEGAL_LENGTHCX_SY_CREATE_DATA_ERRORCREATE_DATA_ILLEGAL_DECIMALSCX_SY_CREATE_DATA_ERRORCREATE_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_ERRORCREATE_OBJECT_CLASS_ABSTRACTCX_SY_CREATE_OBJECT_ERRORCREATE_OBJECT_CREATE_PRIVATECX_SY_CREATE_OBJECT_ERRORCREATE_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_BOUNDSDATA_LENGTH_NEGATIVECX_SY_RANGE_OUT_OF_BOUNDSDATA_LENGTH_0CX_SY_RANGE_OUT_OF_BOUNDSDATA_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDSDATA_OFFSET_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDSREFI_WRONG_SECTIONCX_SY_RANGE_OUT_OF_BOUNDSSTRING_OFFSET_NEGATIVECX_SY_RANGE_OUT_OF_BOUNDSSTRING_OFFSET_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDSSTRING_LENGTH_NEGATIVECX_SY_RANGE_OUT_OF_BOUNDSSTRING_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDSSTRING_OFFSET_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDSDATA_OFFSET_LENGTH_NOT_ALLOWEDCX_SY_OFFSET_NOT_ALLOWED
代码语言:javascript复制
Since a subfield access can occur in almost all statements, no keywords can be assigned.
代码语言:javascript复制
Exception group: DYNAMIC_CALL_METHOD_ERRORS
代码语言:javascript复制
(Associated superclass:CX_SY_DYN_CALL_ERROR)
代码语言:javascript复制
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.
代码语言:javascript复制
DYN_CALL_METH_CLASS_ABSTRACTCX_SY_DYN_CALL_ILLEGAL_CLASSDYN_CALL_METH_CLASS_NOT_FOUNDCX_SY_DYN_CALL_ILLEGAL_CLASSDYN_CALL_METH_CLASSCONSTRUCTORCX_SY_DYN_CALL_ILLEGAL_METHODDYN_CALL_METH_CONSTRUCTORCX_SY_DYN_CALL_ILLEGAL_METHODDYN_CALL_METH_NOT_FOUNDCX_SY_DYN_CALL_ILLEGAL_METHODDYN_CALL_METH_NO_CLASS_METHODCX_SY_DYN_CALL_ILLEGAL_METHODDYN_CALL_METH_PRIVATECX_SY_DYN_CALL_ILLEGAL_METHODDYN_CALL_METH_PROTECTEDCX_SY_DYN_CALL_ILLEGAL_METHODDYN_CALL_METH_EXCP_NOT_FOUNDCX_SY_DYN_CALL_EXCP_NOT_FOUNDDYN_CALL_METH_PARAM_KINDCX_SY_DYN_CALL_ILLEGAL_TYPEDYN_CALL_METH_PARAM_LITL_MOVECX_SY_DYN_CALL_ILLEGAL_TYPEDYN_CALL_METH_PARAM_TAB_TYPECX_SY_DYN_CALL_ILLEGAL_TYPEDYN_CALL_METH_PARAM_TYPECX_SY_DYN_CALL_ILLEGAL_TYPEDYN_CALL_METH_PARAM_MISSINGCX_SY_DYN_CALL_PARAM_MISSINGDYN_CALL_METH_PARREF_INITIALCX_SY_DYN_CALL_PARAM_MISSINGDYN_CALL_METH_PARAM_NOT_FOUNDCX_SY_DYN_CALL_PARAM_NOT_FOUNDDYN_CALL_METH_REF_IS_INITIALCX_SY_REF_IS_INITIAL
代码语言:javascript复制
代码语言:javascript复制
The following keywords are assigned to this exception group:
代码语言:javascript复制
CALL METHOD 
代码语言:javascript复制
Exception group: FILE_ACCESS_ERRORS
代码语言:javascript复制
(Associated superclass:CX_SY_FILE_ACCESS_ERROR)
代码语言:javascript复制
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.
代码语言:javascript复制
DATASET_CANT_CLOSECX_SY_FILE_CLOSEDATASET_CANT_OPENCX_SY_FILE_OPENEXPORT_DATASET_CANNOT_OPENCX_SY_FILE_OPENDATASET_WRITE_ERRORCX_SY_FILE_IODATASET_READ_ERRORCX_SY_FILE_IOEXPORT_DATASET_WRITE_ERRORCX_SY_FILE_IODATASET_SEEK_ERRORCX_SY_FILE_POSITIONDATASET_NO_POSITIONCX_SY_FILE_POSITIONDATASET_READ_ONLYCX_SY_FILE_OPEN_MODEDATASET_NOT_OPENCX_SY_FILE_OPEN_MODEOPEN_DATASET_NO_AUTHORITYCX_SY_FILE_AUTHORITYOPEN_PIPE_NO_AUTHORITYCX_SY_FILE_AUTHORITYDATASET_TOO_MANY_FILESCX_SY_TOO_MANY_FILESDATASET_NO_PIPECX_SY_PIPES_NOT_SUPPORTED
代码语言:javascript复制
代码语言:javascript复制
Exception group: IMPORT_MISMATCH_ERRORS
代码语言:javascript复制
(Common class:CX_SY_IMPORT_MISMATCH_ERROR)
代码语言:javascript复制
This group contains runtime errors that may occur during the import of data
代码语言:javascript复制
from theABAP memory,
代码语言:javascript复制
from the database,
代码语言:javascript复制
from theSHARED BUFFER, or
代码语言:javascript复制
from a file
代码语言:javascript复制
if the type or the length of the data stored is not identical with that of the target type.
代码语言:javascript复制
CONNE_IMPORT_WRONG_COMP_DECSCX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_COMP_LENGCX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_COMP_TYPECX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_FIELD_DECSCX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_FIELD_LENGCX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_FIELD_TYPECX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_OBJECT_TYPECX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_STRUCTURECX_SY_IMPORT_MISMATCH_ERRORIMPORT_ALIGNMENT_MISMATCHCX_SY_IMPORT_MISMATCH_ERRORIMPORT_WRONG_END_POSCX_SY_IMPORT_MISMATCH_ERROR
代码语言:javascript复制
Exception group: LOCALIZATION_ERRORS
代码语言:javascript复制
(Common class:CX_SY_LOCALIZATION_ERROR)
代码语言:javascript复制
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.
代码语言:javascript复制
TEXTENV_CODEPAGE_NOT_ALLOWEDCX_SY_LOCALIZATION_ERRORTEXTENV_INVALIDCX_SY_LOCALIZATION_ERRORTEXTENV_KEY_INVALIDCX_SY_LOCALIZATION_ERROR
代码语言:javascript复制
代码语言:javascript复制
Exception group: REMOTE_CALL_ERRORS
代码语言:javascript复制
(Associated superclass:CX_SY_REMOTE_CALL_ERROR)
代码语言:javascript复制
This group contains runtime errors that may occur during calls in remote systems (currently onlyCALL METHOD). Typical examples are network errors or the unexpected termination of the connection.
代码语言:javascript复制
RMC_COMMUNICATION_FAILURECX_SY_RMC_COMM_FAILURERMC_INVALID_STATUSCX_SY_RMC_INVALID_STATUSRMC_SYSTEM_FAILURECX_SY_RMC_SYSTEM_FAILURE
代码语言:javascript复制
CALL METHOD
代码语言:javascript复制
Not assigned to an exception group:
代码语言:javascript复制
ASSIGN_CASTING_ILLEGAL_CASTCX_SY_ASSIGN_CAST_ILLEGAL_CASTASSIGN_CASTING_UNKNOWN_TYPECX_SY_ASSIGN_CAST_UNKNOWN_TYPEASSIGN_FIELD_NOT_IN_RANGECX_SY_ASSIGN_OUT_OF_RANGEDATASET_OFFSET_TOO_LARGECX_SY_FILE_POSITIONDYN_CALL_METH_NOT_IMPLEMENTEDCX_SY_DYN_CALL_ILLEGAL_METHODEXPORT_BUFFER_NO_MEMORYCX_SY_EXPORT_BUFFER_NO_MEMORYGENERATE_SUBPOOL_DIR_FULLCX_SY_GENERATE_SUBPOOL_FULLMOVE_CAST_ERRORCX_SY_MOVE_CAST_ERRORPERFORM_PROGRAM_NAME_TOO_LONGCX_SY_PROGRAM_NOT_FOUNDREPLACE_INFINITE_LOOPCX_SY_REPLACE_INFINITE_LOOP
代码语言:javascript复制
代码语言:javascript复制
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 人点赞