abap异常处理 , update module
1:异常
https://www.cnblogs.com/rainysblog/p/6665455.html
2:update module
https://www.cnblogs.com/cindyLu/p/3645423.html
https://wenku.baidu.com/view/81ce505d0508763230121209.html
3:程序:
REPORT demo_catch_exception.
DATA(in) = cl_demo_input=>new( ).
DATA: resumable     TYPE abap_bool VALUE abap_false,
      before_unwind TYPE abap_bool VALUE abap_false,
      resume        TYPE abap_bool VALUE abap_false.
in->add_field( EXPORTING as_checkbox = 'X'
                         text = 'RAISE RESUMABLE'
               CHANGING  field = resumable
 )->add_field( EXPORTING as_checkbox = 'X'
                         text = 'CATCH BEFORE UNWIND'
               CHANGING  field = before_unwind
 )->add_field( EXPORTING as_checkbox = 'X'
                         text = 'RESUME'
               CHANGING  field = resume
 )->request( ).
CLASS lcx_exception DEFINITION INHERITING FROM cx_static_check.
ENDCLASS.
CLASS exc_demo DEFINITION.
  PUBLIC SECTION.
    CLASS-DATA out TYPE REF TO if_demo_output.
    CLASS-METHODS: main,
      meth1 RAISING lcx_exception,
      meth2 RAISING RESUMABLE(lcx_exception).
ENDCLASS.
FIELD-SYMBOLS <fs> TYPE any.
CLASS exc_demo IMPLEMENTATION.
  METHOD main.
    out = cl_demo_output=>new( ).
    DATA exc TYPE REF TO lcx_exception.
    IF before_unwind = abap_false.
      TRY.
          out->write( 'Trying method call' ).
          IF resumable = abap_false.
            exc_demo=>meth1( ).
          ELSEIF resumable = abap_true.
            exc_demo=>meth2( ).
          ENDIF.
        CATCH lcx_exception.
          IF <fs> IS ASSIGNED.
            out->write( 'Context of method available' ).
          ELSE.
            out->write( 'Context of method not available' ).
          ENDIF.
      ENDTRY.
      out->write( 'Continue after main TRY block' ).
    ELSEIF before_unwind = abap_true.
      TRY.
          out->write( 'Trying method call' ).
          IF resumable = abap_false.
            exc_demo=>meth1( ).
          ELSEIF resumable = abap_true.
            exc_demo=>meth2( ).
          ENDIF.
        CATCH BEFORE UNWIND lcx_exception INTO exc.
          IF <fs> IS ASSIGNED.
            out->write( 'Context of method available' ).
          ELSE.
            out->write( 'Context of method not available' ).
          ENDIF.
          IF resume = abap_true.
            IF exc->is_resumable = abap_true.
              RESUME.
            ELSE.
              out->write( 'Resumption not possible' ).
            ENDIF.
          ENDIF.
      ENDTRY.
      out->write( 'Continue after main TRY block' ).
    ENDIF.
    out->display( ).
  ENDMETHOD.
  METHOD meth1.
    DATA loc TYPE i.
    ASSIGN loc TO <fs>.
    TRY.
        out->write( 'Raising non-resumable exception' ).
        RAISE EXCEPTION TYPE lcx_exception.
        out->write( 'Never executed' ).
      CLEANUP.
        out->write( 'Cleanup in method' ).
    ENDTRY.
    out->write( 'Continue after TRY block in method' ).
  ENDMETHOD.
  METHOD meth2.
    DATA loc TYPE i.
    ASSIGN loc TO <fs>.
    TRY.
        out->write( 'Raising resumable exception' ).
        RAISE RESUMABLE EXCEPTION TYPE lcx_exception.
        out->write( 'Resuming method' ).
      CLEANUP.
        out->write( 'Cleanup in method' ).
    ENDTRY.
    out->write( 'Continue after TRY block in method' ).
  ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
  exc_demo=>main( ).
abap异常处理 , update module的更多相关文章
- ABAP术语-Update Module
		Update Module 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/20/1114178.html Part of an update ... 
- abap开发中update module 的创建和使用
		一.update module 的创建和使用 最近遇到这样一个需求,需要先删除(delete)表中的数据,再将传递过来的新数据添加(modify)到表中. 但是如果下面modify的时候出现错误,使用 ... 
- update module (更新模块)
		[转自http://blog.csdn.net/zhongguomao/article/details/6712568] function module:更新程序必须用一个特殊的FM(update m ... 
- ABAP术语-V2 Module
		V2 Module 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/21/1115720.html Analogously to V1 the ... 
- ABAP术语-V1 Module
		V1 Module 原文;http://www.cnblogs.com/qiangsheng/archive/2008/03/21/1115707.html Function module creat ... 
- ABAP术语-Update Task
		Update Task 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/20/1114184.html Part of an ABAP pro ... 
- ABAP术语-Function Module
		Function Module 原文:http://www.cnblogs.com/qiangsheng/archive/2008/02/18/1071827.html General-purpose ... 
- ABAP术语-Update Data
		Update Data 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/20/1114169.html The data which is t ... 
- ABAP术语-Update Key
		Update Key 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/20/1114171.html Unique character str ... 
随机推荐
- 一、K3 Cloud 实施指导《K3 Cloud实施手册》
			1.在BOS的单据体取不到序号字段 举例:单据体标识是FValueGrid,序号标识是FSeq,取到的序号标识要写成FValueGrid_FSeq才能识别到 2.k3 Cloud目前不支持在表头字段调 ... 
- IIS 6的日志time-taken字段没有值的解决方案
			1.IIS 6网站的活动日志格式选择“W3C 扩展日志文件格式”. 2.日志记录属性的高级选项卡,扩展属性列表勾选time-taken. 
- ResDepot CRC码
			参考: 百度百科 crc校验 百度百科 crc编码 生日悖论 CRC32能不能用于检验文件的相同性 Egret RES版本控制 一.Egret的ResDepot在发布时,可以添加crc码. 发布前 发 ... 
- web站点健康检测和告警小脚本
			#!/bin/sh web01="http://172.18.52.xx:8080/web/api/getTime" web02="http://172.18.52.xx ... 
- php中memcached的使用
			文档所在:http://php.net/manual/zh/book.memcached.php 1.在php使用memcached操作之前要实例化memcached: [系统类] 2.添加服务器: ... 
- 微信jssdk上传图片,一张一张的上传 和 一次性传好几张
			//html模板 <div class="zhaopin_3_2"> <div id="bbb"></div> <im ... 
- A - Calendar
			A - Calendar Time Limit:1000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I64u Submit ... 
- {Python之进程}    背景知识    什么是进程     进程调度     并发与并行      同步\异步\阻塞\非阻塞     进程的创建与结束     multiprocess模块     进程池和mutiprocess.Poll
			Python之进程 进程 本节目录 一 背景知识 二 什么是进程 三 进程调度 四 并发与并行 五 同步\异步\阻塞\非阻塞 六 进程的创建与结束 七 multiprocess模块 八 进程池和mut ... 
- Ubuntu系统中各种文件颜色的含义
			蓝 色:文件夹 ,ls -l或ll时可以看到权限部分的第1个字母是d红色:压缩文件 绿色:可执行文件,包括jar白色:文本文件红色闪烁:错误的符号链接淡蓝色:符号链接黄色:设备文件灰色:其它文件 ... 
- CCPC-Wannafly Winter Camp Day3 Div1 - 石头剪刀布 - [带权并查集]
			题目链接:https://zhixincode.com/contest/14/problem/I?problem_id=211 样例输入 1 3 5 2 1 1 2 1 2 1 1 2 3 2 1 ... 
