我在叫这个cl_abap_typedescr=>describe_by_name方法.它可能会抛出TYPE_NOT_FOUND异常.我来自c#,在c#中,很容易发现这样的错误.但是在ABAP中,我无法捕获异常.
它始于我不能TYPE_NOT_FOUND在我的代码中使用异常对象的事实.它只是不存在.它继续这样一个事实,捕捉CX_ROOT也无济于事.它只是忽略了我的try catch子句并崩溃:
TRY .
descr_ref0 ?= cl_abap_typedescr=>describe_by_name('iabc1').
CATCH cx_root.
BREAK-POINT.
ENDTRY.
Run Code Online (Sandbox Code Playgroud)
我假设您需要进行类型转换,因此为它提供了额外的步骤.
这种语法不如新语法那么优雅,但它是我可以编写示例的唯一方法:
data descr_ref1 type ref to cl_abap_typedescr.
call method cl_abap_typedescr=>describe_by_name(
exporting p_name = 'abc1'
receiving p_descr_ref = descr_ref1
exceptions type_not_found = 1 ).
if sy-subrc <> 0.
break-point.
else.
descr_ref0 ?= descr_ref1.
endif.
Run Code Online (Sandbox Code Playgroud)
编辑:
您可以通过查看该方法来判断使用哪种类型的异常:

或者,您可以使用编辑器中的"Pattern"命令来获取正确的语法.
| 归档时间: |
|
| 查看次数: |
1991 次 |
| 最近记录: |