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 ...
随机推荐
- php面试题之一——HTML+CSS(基础部分)
一.HTML + CSS部分 1. 请说明 HTML 文档中 DTD 的意义和作用(酷讯) DTD,文档类型定义,是一种保证 html 文档格式正确的有效方法,在解析网页时,浏览器将使用 DTD 来检 ...
- Visual Studio(C#)快捷键与Eclipse(JAVA)快捷键对比
Visual Studio与Eclipse快捷键对比 Visual Studio Eclipse 代码提示: Ctrl+J Ctrl+空格键 / Alt+/ .abcdefghijklmnopqr ...
- 使用Anaconda3配置多版本Python虚拟开发环境
有时候,为了使用比较干净的开发环境,或者为了测试一些版本的扩展库,我们可能需要创建虚拟开发环境,在不同的虚拟开发环境中,只安装需要的扩展库,这样可以最大程度上减少不同扩展库之间的兼容性带来的冲突或其他 ...
- Django框架详解
一.WSGI接口 WSGI服务网关接口:Web Server Gateway Interface缩写. WSGI是python定义的Web服务器和Web应用程序之间或框架之间的通用接口标准. WSGI ...
- Linux CentOS中防火墙的关闭及开启端口
注:CentOS7之前用来管理防火墙的工具是iptable,7之后使用的是Firewall 样例:在CentOS7上安装tomcat后,在linux本机上可以访问tomcat主页,http://ip: ...
- 微软VBS生成Excel内容和图表示例
<HTML> <BODY> <INPUT id=button1 name=button1 type=button value=Button> <SCRIPT ...
- 汇编语言里 eax, ebx, ecx, edx, esi, edi, ebp, esp
eax, ebx, ecx, edx, esi, edi, ebp, esp等都是X86 汇编语言中CPU上的通用寄存器的名称,是32位的寄存器.如果用C语言来解释,可以把这些寄存器当作变量看待. 比 ...
- 所生成项目的处理器架构“MSIL”与引用“***”的处理器架构“x86”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器...
警告:所生成项目的处理器架构“MSIL”与引用“***”的处理器架构“x86”不匹配.这种不匹配可能会导致运行时失败.请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构 ...
- {python之IO多路复用} IO模型介绍 阻塞IO(blocking IO) 非阻塞IO(non-blocking IO) 多路复用IO(IO multiplexing) 异步IO(Asynchronous I/O) IO模型比较分析 selectors模块
python之IO多路复用 阅读目录 一 IO模型介绍 二 阻塞IO(blocking IO) 三 非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) 五 ...
- MySQL的一些概念
数据库与服务器.客户端的层次关系 关于数据库 程序中需要存储数据的方式: 1 变量(列表.元组.集合.字典.嵌套) 2 外存(文件)(*.ini) 3 表格.Excel(*.xls.*.xlsx.*. ...