码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SAP ABAP 运行时的错误控制 语法: CATCH SYSTEM-EXCEPTIONS


    ABAP部分错误无法在编译期间提示,只能在运行时才能发现错误

    文章目录

    • 1.可捕获的运行时错误
      • 1.1概念
      • 1.2语法
      • 1.3代码
      • 1.4结果分析
    • 2.不可捕获的运行时错误

    当我们在编写ABAP代码时可能会出现各种的错误提示,比如:书写期间的错误,编译期间的错误,运行期间的错误.
    今天我们所说的 就是运行期间的错误

    1.可捕获的运行时错误

    1.1概念

    因为我们在编写abap代码是无法确定运行时的变量的值,而静态的检查也不能完全避免运行时的错误.
    虽然我们运行时的变量我们在运行之前无法确定,但我们可以通过判断来进行错误的捕获

    因为在SAP中可以捕获到运行期间是错误组成一个运行时错误类,通过CATCH控制语句对错误进行处理.

    CATCH控制结构类似于IF结构,可以嵌套,
    但必须在同一个处理内部结束.
    注意:结构只能捕获当前调用级别运行时的错误,不对内部的进行处理.

    1.2语法

    CATCH SYSTEM-EXCEPTION a = n .... a = n .
    	"代码体:如果出现错误程序不会终止,而是直接结束当前的catch语句块.
    ENDCATCH.
    
    • 1
    • 2
    • 3

    a表示一个单一可捕获错误或ERROR类
    n表示一个数字,这数字会赋值给系统变量SY-SBRC
    从而我们可以使用IF语句判断该系统变量SY-SUBRC是否等于我们设置的这个n,如果等于就会处理if结构中的代码,而不会Dump掉.

    1.3代码

    DATA: result TYPE P DECIMALS 3.
          number TYPE VALUE 11.
    
    CATCH SYSTEM-EXCEPTIONS arithmetic_errors = 5.
        do 3 TIMES .
          number = number - 1.
          result = 1 / result.
          WRITE: / number , result.
        ENDDO.
      endcatch.
      SKIP.
      IF sy-subrc = 5.
        WRITE: / '分母为零,错误!'.
      ENDIF.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    SAP ABAP 基本运算(加减乘除取余 四舍五入 向上下取整)

    1.4结果分析

    当前程序触发可捕获的错误BDC_ZERODIVIDE该错误属于系统ERROR类中的ARITHMETIC_ECRRORS并可以被该类捕获
    在这里插入图片描述
    在debug下我们可以直观的发现ARITHMETIC_ECRRORS = 5 赋值给了系统变量SY-SUBRC
    接着在通过 if语句 给出错误提示
    在这里插入图片描述

    如果我们把代码中的 result = 1 / result.这句注释掉,
    DO语句的代码就会被正常输出.
    在这里插入图片描述

    2.不可捕获的运行时错误

    有些的运行时错误是无法捕获的或者没有对其进行捕获一旦出现就dump
    可以使用事务码ST22进行查看具体的错误详情.

  • 相关阅读:
    SSM+基于web的酒店预订及个性化服务系统 毕业设计-附源码241822
    浅析大型IM即时通讯系统开发难度
    [附源码]计算机毕业设计JAVAjsp-室内田径馆预约管理系统
    js onclick 父级 子节点 onclick 冲突 屏蔽 拦截
    算法竞赛进阶指南——队列学习笔记
    MSP432单片机学习记录(二)
    灵魂一问:一个Java文件的执行全部过程你确定都清楚吗?
    Gitlab部署
    基于自适应权重和柯西变异的鲸鱼优化算法-附代码
    【CSS3】CSS3 动画 ③ ( 动画属性 | CSS3 常见动画属性简介 | 动画属性简写方式 | 动画属性简写语法 | 代码示例 )
  • 原文地址:https://blog.csdn.net/weixin_49198221/article/details/126587891
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号