gpt4 book ai didi

abap - 使用动态方法名称调用方法,RuntimeException

转载 作者:行者123 更新时间:2023-12-05 01:08:13 27 4
gpt4 key购买 nike

我尝试在 7.40 系统上演示具有动态方法名称的 CALL METHOD 语句。我使用下面的测试代码,在第 27 行得到一个 ABAP 运行时错误。异常描述中的错误分析状态 ... 在类 LCL 中,找不到方法“m”。但独立方法调用成功调用m

REPORT ZUTEST10.
CLASS lcl DEFINITION.
PUBLIC SECTION.
METHODS m.
ENDCLASS.
CLASS lcl IMPLEMENTATION.
METHOD m.
write / 'success'.
ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.

DATA oref TYPE REF TO lcl.
CREATE OBJECT oref.
oref->m( ). " works fine

DATA name TYPE c VALUE 'm'.
CALL METHOD oref->(name). " <-- Runtime Error

最佳答案

在后台所有方法名都是大写的,所以你必须像这样调用方法:

DATA name TYPE c VALUE 'M'.

另一方面,您可以捕获此异常,因此即使该方法不存在,程序也不会转储:

  TRY.
CALL METHOD oref->(name).
CATCH cx_sy_dyn_call_illegal_method
INTO DATA(lx_illegal_method).
"handle illegal method call
ENDTRY.

关于abap - 使用动态方法名称调用方法,RuntimeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66312717/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com