1、捕获异常
try.
RESULT = 1 / NUMBER.
write: / 'Result of division:', RESULT.
RESULT = SQRT( NUMBER ).
write: / 'Result of square root:', RESULT.
catch CX_SY_ZERODIVIDE into OREF.
TEXT = OREF->GET_TEXT( ).
cleanup.
clear RESULT.
endtry.
2、抛出异常
report DEMO_RAISE_EXCEPTIONS line-size 100.
data OREF type ref to CX_ROOT.
data TEXT type STRING.
try.
try.
raise exception type CX_DEMO_CONSTRUCTOR
exporting MY_TEXT = SY-REPID.
catch CX_DEMO_CONSTRUCTOR into OREF.
TEXT = OREF->GET_TEXT( ).
write / TEXT.
raise exception OREF.
endtry.
catch CX_DEMO_CONSTRUCTOR into OREF.
TEXT = OREF->GET_TEXT( ).
write / TEXT.
endtry.
3、声明方法抛出的异常
class A_CLASS definition.
public section.
methods FOO importing P type STRING
raising CX_DEMO_CONSTRUCTOR CX_DEMO_ABS_TOO_LARGE.
endclass.
4、定义异常类
class CX_LOCAL_EXCEPTION definition
inheriting from CX_STATIC_CHECK.
endclass.
start-of-selection.
try.
raise exception type CX_LOCAL_EXCEPTION.
catch CX_LOCAL_EXCEPTION.
message 'Local Exception!' type 'I'.
endtry.
try.
RESULT = 1 / NUMBER.
write: / 'Result of division:', RESULT.
RESULT = SQRT( NUMBER ).
write: / 'Result of square root:', RESULT.
catch CX_SY_ZERODIVIDE into OREF.
TEXT = OREF->GET_TEXT( ).
cleanup.
clear RESULT.
endtry.
2、抛出异常
report DEMO_RAISE_EXCEPTIONS line-size 100.
data OREF type ref to CX_ROOT.
data TEXT type STRING.
try.
try.
raise exception type CX_DEMO_CONSTRUCTOR
exporting MY_TEXT = SY-REPID.
catch CX_DEMO_CONSTRUCTOR into OREF.
TEXT = OREF->GET_TEXT( ).
write / TEXT.
raise exception OREF.
endtry.
catch CX_DEMO_CONSTRUCTOR into OREF.
TEXT = OREF->GET_TEXT( ).
write / TEXT.
endtry.
3、声明方法抛出的异常
class A_CLASS definition.
public section.
methods FOO importing P type STRING
raising CX_DEMO_CONSTRUCTOR CX_DEMO_ABS_TOO_LARGE.
endclass.
4、定义异常类
class CX_LOCAL_EXCEPTION definition
inheriting from CX_STATIC_CHECK.
endclass.
start-of-selection.
try.
raise exception type CX_LOCAL_EXCEPTION.
catch CX_LOCAL_EXCEPTION.
message 'Local Exception!' type 'I'.
endtry.