如何捕获从上层方法中的下层引发的基于类的异常

2020-08-26 06:41发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

下面是我的情况,我在较低的方法(method4())中引发基于类的异常'CX_E1',为此,除Method1()之外,任何其他较高的方法都没有catch块。

Method1()-> Method2()-> Method3()-> Method4()

在Method1()中,使用异常'CX_E1'的catch块,我无法捕获引发的异常,但是我可以捕获异常cx_sy_no_handler,请让我知道我做错了什么或它是预期的行为。

总而言之,从较低方法引发的异常不会传播到调用堆栈中较高级别的方法。

预先感谢

阿维纳什

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

下面是我的情况,我在较低的方法(method4())中引发基于类的异常'CX_E1',为此,除Method1()之外,任何其他较高的方法都没有catch块。

Method1()-> Method2()-> Method3()-> Method4()

在Method1()中,使用异常'CX_E1'的catch块,我无法捕获引发的异常,但是我可以捕获异常cx_sy_no_handler,请让我知道我做错了什么或它是预期的行为。

总而言之,从较低方法引发的异常不会传播到调用堆栈中较高级别的方法。

预先感谢

阿维纳什

付费偷看设置
发送
3条回答
CJones
1楼-- · 2020-08-26 07:17

您是否已定义" RAISING CX_E1

昵称总是被占用
2楼-- · 2020-08-26 07:15

应该将CX_E1或其父级添加到方法的签名中,以从中传播异常。

小灯塔
3楼-- · 2020-08-26 07:24

它将 在以下情况下可以工作

  • 要么CX_E1继承CX_NO_CHECK(直接或间接)
  • ,要么在每个级别上捕获一个CX_E1,要么使用一个显式的try-catch块,要么使用一个隐式的catch,如Tomas所述(通过定义每种方法METHODS .. 。RAISING CX_E1)。

一周热门 更多>