ABAP之异常捕获详解
【摘要】 序HELLO,这里是百里,一个学习中的ABAPER,今天学习了一个新技术,当然在其他语言中算不得什么技术,其实就是捕获异常.合理的使用捕获异常可以有效的避免程序ABAPDOWN,或者是反馈异常数据给操作者进行思维判断,都是非常好的应用场景.那么今天就讲一下ABAP中的异常捕获方式吧 . 什么是异常捕获在代码执行中,肯定会出现难免报错的现象,但是我们又不想用户直接程序终止,或者需要程序告诉我...
序
HELLO,这里是百里,一个学习中的ABAPER,今天学习了一个新技术,当然在其他语言中算不得什么技术,其实就是捕获异常.合理的使用捕获异常可以有效的避免程序ABAPDOWN,或者是反馈异常数据给操作者进行思维判断,都是非常好的应用场景.那么今天就讲一下ABAP中的异常捕获方式吧 .
什么是异常捕获
在代码执行中,肯定会出现难免报错的现象,但是我们又不想用户直接程序终止,或者需要程序告诉我们,是因为什么原因报的错,报的什么类型的错,此时就需要,异常捕获.
异常捕获格式
try {
可能发生异常的代码
} catch(可能出现异常的类型 标识符) {
这种异常出现之后的处理方式
}
没有异常,直接打印try中内容,再打印后续内容 (catch中不执行,不需要捕获)在往下执行正常代码
异常捕获流程
执行流程:
1、执行try中的内容,如果没有异常,try...catch语句直接结束
2、如果有异常,那么就在发生异常的代码位置直接跳转到catch块中,try中后面的代码就不再继续运行了
3、继续匹配各个catch块中的异常类型,从上到下,一旦匹配到某个catch声明的异常类型,就直接执行该catch块的处理方式。处理完成之后,try...catch语句就直接结束了,不会再去匹配后面其他的catch块的异常类型
语法解析
data MYREF type ref to CX_SY_ARITHMETIC_ERROR.
data ERR_TEXT type STRING.
data RESULT type I.
try.
...
catch cx_sy_arithmetic_error into MYREF.
ERR_TEXT = MYREF->GET_TEXT( ).
endtry.
实例解析
数据定义
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( ).
sy-subrc = 4. "改变系统变量
endtry.
逻辑判断
IF sy-subrc = 0 .
WRITE : '未报错' .
ELSEIF sy-subrc = 4 .
WRITE : ERR_TEXT .
ENDIF.
结果
显而易见,0是不能做被除数的,我们通过IF判断逻辑,如果sy-subrc = 4 时就输出对应的异常值 .
正常操作时
我们让 RESULT = 2 / 1.
当0为被除数时
技术总结
今天讲的内容,是异常捕获相关的内容,本文介绍了异常捕获的概念,异常捕获的流程,以及简单的异常捕获demo ,可以轻松上手程序,了解使用方式.
百里鸡汤
有没有人和我一样,总是会莫名的难受,别人问,却说不出一个合理的理由。
这里是百里.明天见.
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)