如何解决带有动态方法名称的 CALL METHOD,RuntimeException
我尝试在 7.40 系统上演示带有动态方法名称的 CALL METHOD
语句。我使用以下测试代码并在第 27 行得到 ABAP 运行时错误。异常描述中的错误分析指出 ... in the class LCL,the method "m" could not be found.
但独立方法调用成功调用 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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。