ABAP OO EXCEPTION

Exception是指ABAP程序在正常执行过程中不能够正常执行下去的情况。BASIS RELEASE 610之后,exception是在exception class的基础之上实现的。CLASS based exception既可以通过abap语句触发也可以由runtime system触发。可以自己定义exception class,不过系统已经自带了一系列的exception class。一个exception由一个exception object来代表,即一个exception class的实例,exception object的属性描述了exception的具体情况。Class-based exception可以应用于ABAP程序的所有processing blocksClass-based Exception发生时,当前运行的程序被中断,系统试图找到合适的handler,如果找不到就会发生runtime error

所有的exception class都继承于下面三个类:CX_NO_CHECKCX_DYNAMIC_CHECKCX_STATIC_CHECK,这些类继承于CX_ROOT。所有的exception class都有前缀CX_Exception class一般都是global的,不过也可以定义localexception classCX_ROOT有两个预定义的方法,GET_SOURCE_POSITION用来返回程序名,include程序名,发生exception的源代码所在的行数。GET_TEXT用来返回exception文本。所有的exception class都继承了CX_ROOTKERNEL_ERRID属性,用来返回由runtime触发的exception名称。

Processing blocks without local data areasevent blocksdialog modules

继承于cx_static_checkexception要么被handle要么通过RAISINGpass along。这种情形是通过系统的语法检查来保证的。自定义的exception只能是这个类的子类。继承与cx_dynamic_check的子类同cx_static_check的情形一样,只不过其没有被语法检查保护,如果这种exception发生时既没有被保护也没有被pass along那么就会产生一个runtime error。大部分预定义的系统exception前缀名是cx_sy…都继承于cx_dynamic_check。继承与cx_no_checkexception不能被raising但是可以被handle,如果没有被handle他就会自动向上pass along至到最顶端,如果还没有被caught那么他就会抛出runtime error。这种情况也不能被语法检查检测到。一些预定义的exception继承于这个类。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值