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 ...