Open SQL后未检查sy-subrc报错(WHERE条件处)如何解决?
解决“avoid unchecked return code (sy-subrc) after open SQL”报错
报错原因
你这段代码里的SELECT语句执行后,没有检查它自身的sy-subrc返回值。静态代码检查工具(比如ABAP Test Cockpit)会认为你遗漏了对SQL查询结果的处理(比如查询无数据的场景),因此抛出该警告。注意:你代码开头判断的sy-subrc是前面其他操作的返回值,和当前SELECT的执行状态无关。
解决方法
方法1:检查SELECT的返回值(推荐)
在SELECT语句执行后立即检查sy-subrc,根据结果处理无数据的场景:
If sy-subrc eq 0. Select * from zit_tab Into table @data(lt_tab) Where prop_name = @is_prop_input-key-name. " 检查当前SELECT的执行结果 If sy-subrc <> 0. " 示例:抛出提示消息或清空内表 Message '未找到匹配的属性数据' Type 'I'. Clear lt_tab. Endif. Else. Return. Endif.
方法2:抑制警告(仅当确定无需处理结果时使用)
如果确认不需要处理SELECT无数据的情况,可以用##NEEDED伪注释让检查工具忽略该警告:
If sy-subrc eq 0. Select * from zit_tab Into table @data(lt_tab) Where prop_name = @is_prop_input-key-name. ##NEEDED " 抑制未检查sy-subrc的静态检查警告 Else. Return. Endif.
内容的提问来源于stack exchange,提问作者Aishwarya
相关产品推荐
相关产品推荐

