ABAP之异常捕获详解
异常 详解 ABAP 捕获
2023-06-13 09:16:32 时间
序
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 ,可以轻松上手程序,了解使用方式.
相关文章
- Oracle异常处理语法与实例
- 【说站】python异常处理的常见错误
- SPL工业智能:发现时序数据的异常
- 1-异常
- python如何抛出异常_python自定义异常
- 通俗理解运行时异常和非运行时异常(一般异常)[通俗易懂]
- springboot异常处理之404
- ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程”的异常详解数据库
- mysql遇见contains nonaggregated column ‘information_schema.PROFILING.SEQ’异常详解数据库
- Java 异常处理的误区和经验总结详解编程语言
- Python异常处理详解编程语言
- Java异常处理之InvocationTargetException(反射异常)详解编程语言
- SpringMVC09异常处理和类型转化器详解编程语言
- Akka(26): Stream:异常处理-Exception handling详解编程语言
- org.springframework.beans.factory.NoSuchBeanDefinitionException: 异常处理详解编程语言
- 内部类、异常、其他详解编程语言
- 深入理解Java虚拟机 – OutOfMemoryError异常详解编程语言
- java学习笔记16–异常详解编程语言
- Python3 打开 https 链接,异常:“SSL: CERTIFICATE_VERIFY_FAILED”详解编程语言
- Python3 tesseract加载chi_sim异常停止工作详解编程语言
- fastJson反序列化异常,JSONException: expect ‘:’ at 0, actual =详解编程语言
- ABAP抓取异常的方法:try,endtry详解编程语言
- Python异常处理机制结构详解
- Linux下排查进程异常的方法(linux查看进程异常)
- Oracle异常详解:如何定义及处理异常?(oracle定义异常)
- MySQL异常退出的解决方法(mysql 一闪退出)
- 上海Redis设置失控,急需解决(上海redis设置异常)
- php5编程中的异常处理详细方法介绍
- Oracle中RAISE异常深入分析
- PHP的异常处理、错误的抛出及回调函数等面向对象的错误处理方法