abap--关于异常的处理
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 DEFINITIONClass-based Exceptions Implementation
*----------------------------------------------------------------------* * CLASS class_exception IMPLEMENTATION *----------------------------------------------------------------------* CLASS class_exception IMPLEMENTATION.METHOD write_msg.WRITE / 'Method of Class class_exception'.ENDMETHOD. ": ENDCLASS. "class_exception IMPLEMENTATIONClass 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 RAISINGMETHODS action RAISING class_exception.ENDCLASS. "main DEFINITIONClass main Implementation
*----------------------------------------------------------------------* * CLASS main IMPLEMENTATION *----------------------------------------------------------------------* CLASS main IMPLEMENTATION.METHOD action.* Here we're raising an exception that should be Treated by * exception class class_exceptionRAISE EXCEPTION TYPE class_exception.ENDMETHOD. "action ENDCLASS. "main IMPLEMENTATIONDefining 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 exceptionsTRY.o_main->action( ).* The Statement CATCH define a block that catches the exceptions of the * exception class class_exceptionCATCH class_exception.WRITE / 'Exception Caught'.ENDTRY.* The statement TRY must be used to define a block that CATCH the exceptionsTRY.o_main->action( ).* The Statement CATCH define a block that catches the exceptions of the * exception class class_exceptionCATCH 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
總結
以上是生活随笔為你收集整理的abap--关于异常的处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ABAP日期函数应用
- 下一篇: ALV一个百度文库的例子