ABAP TRY CATCH

sql异常获取

"测试主键重复的异常  不会使程序直接dump
DATA: lcx_error TYPE REF TO cx_root, "cx_sy_sql_error . "cx_sy_open_sql_db.
        i_tab LIKE TABLE OF spfli WITH HEADER LINE,
        err_text TYPE c LENGTH 1000.
TRY."**这里不能用perform on commit 不然不会执行catch的语句**
        INSERT zwfgetno FROM TABLE gt_zwfgetno.
        "更新中间表
        UPDATE zwfinfo SET zdate = sy-datum znum = zwfinfo-znum WHERE zwftyp = zwfinfo-zwftyp.
CATCH cx_sy_open_sql_db INTO lcx_error.
        err_text = lcx_error->get_text( ). "得到错误信息.
        "存在异常
        sy-subrc = **自定义数字作为区分**
ENDTRY.

也可以不使用cx_sy_open_sql_db类,

变量和表的操作均可直接通过cx_root获取错误信息
并返回sy-subrc的值

TRY.
      "gv_je = 'test'."变量赋值

      INSERT zyszk01 FROM TABLE gt_zyszk01."表的操作
CATCH cx_root INTO gv_exref.
      gv_msgtxt = gv_exref->get_text( )."括号中要有个空格 不然报错
      WRITE: / gv_msgtxt.
ENDTRY.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值