在ABAP程序中,经常会碰到一些exception.通常碰见最多的地方也就是在Function module中添加的;下面介绍下Class Exception。
Class exception通常是由CX_NO_CHECK/CX_DYNAMIC_CHECK/CX_STATIC_CHECK这3个类来调用,他们都会继承kernal class CX_ROOT; 当在TRY. ENDTRY.这个句块中使用CATCH 捕捉到exception的时候,就通过方法GET_TEXT( )来读取text 信息。
例如:
首先会在SE24中定义一个EXCEPTION CLASS,它的super class为CX_STATIC_CHECK,并在TEXT下定义一个ID为ZZZID
DATA: LO_EXCEPTION TYPE REF TO ZCX_MESSAGE,
lv_string TYPE STRING.
TRY .
RAISE EXCEPTION TYPE zcx_message
EXPORTING
TEXTID = zcx_message=>zzzid.
CATCH zcx_message INTO lo_exception.
lv_string = lo_exception->GET_TEXT( ).
MESSAGE I001(00) WITH lv_string.
ENDTRY.