ABAP抓取异常 try ,endtry.

  DATA: O_CX  TYPE  REF  TO  CX_ROOT.
    TRY .
        MOVE LS_UPLOAD-MENGE TO LS_OUTPUT-MENGE.
      CATCH  CX_ROOT INTO  O_CX.
        LV_MSG =  O_CX->IF_MESSAGE~GET_TEXT( ).
        CONCATENATE LS_OUTPUT-MESG LV_MSG INTO LS_OUTPUT-MESG SEPARATED BY ';'.
    ENDTRY.

IF LS_UPLOAD-MENGE  = 'AAA'.

   LV_MSG   =   无法将参数 'AAA' 解释为数字

ENDIF.

避免系统dump.

转自:http://www.cnblogs.com/jiangzhengjun/p/4292428.html

异常处理                  

异常类是系统预先定义好的全局类或者是由用户自定义的局部或全局的类。
在sap6.10版本里,exception classes已经取代了catchable runtime errors
基于类的异常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. 这个写法与java是相似的

*&方法二、(大师说这是新式的)

DATA result TYPE p DECIMALS 2.

  DATA oref TYPE REF TO cx_root.
  DATA text TYPE string.
  DATA i TYPE i.

  TRY .
      i = 1 / 0.
  CATCH cx_root INTO oref.
      text = oref->get_text( ).
      WRITE: '---' , text.
      RAISE EXCEPTION oref.”注:如果有此句,则不能放在Function中,否则报:Old and class-based exceptions must not be used the same time
  ENDTRY.

原文地址:https://www.cnblogs.com/rainysblog/p/6574393.html