我应该使用哪个例外来克服我所要求的短暂转储?

2020-09-10 09:48发布

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

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


我想将字符串或字符字段与0进行比较

ex:数据lv1类型的字符串值'hai'。

尝试。

如果lv1> 0。

ENDIF。

捕获cx_sy_arithmetic_error。

ENDTRY。

我尝试了不同的标准异常分类,但是我无法解决问题。

任何人都可以帮助我解决此错误。

我附上了转储屏幕截图。

提前感谢

anusha

(18.2 kB)

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

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


我想将字符串或字符字段与0进行比较

ex:数据lv1类型的字符串值'hai'。

尝试。

如果lv1> 0。

ENDIF。

捕获cx_sy_arithmetic_error。

ENDTRY。

我尝试了不同的标准异常分类,但是我无法解决问题。

任何人都可以帮助我解决此错误。

我附上了转储屏幕截图。

提前感谢

anusha

(18.2 kB)
付费偷看设置
发送
6条回答
哎,真难
1楼-- · 2020-09-10 10:08

首先尝试将字符串移动到数字变量(转换可能会在cx_sy_arithmetic_error异常中捕获)。 然后,您可以进行比较(num_variable> 0)。 无法捕获比较转储。

Tong__Ming
2楼-- · 2020-09-10 10:19

您是否尝试过CX_ROOT?

wang628962
3楼-- · 2020-09-10 10:08

是否使用 Tomas 在逻辑表达式之前,如 SAP帮助示例 ...

,或者在继续操作之前仅检查您的值是否实际上是" IS NUMERIC":

 DATA lv1 TYPE字符串值'hai'。
 尝试。
     IF cl_dba_format => is_numeric(lv1)。
       如果lv1> 0。
       万一。
     其他。
       写"非数字!"。
     万一。
   捕获cx_sy_arithmetic_error INTO DATA(excp)。
     DATA(msgtxt)= excp-> get_text()。
     写msgtxt。
 ENDTRY。
 
暮风yp
4楼-- · 2020-09-10 10:24

如果您的简短转储没有指出异常类的名称(对于基本错误,通常为CX_SY_ *),则没有可以处理的异常类。 因此,在比较字符串或将字符串分配给数字之前,请确保该字符串仅包含数字字符(例如,如果lv1 CO'0123456789')。

奄奄一息的小鱼
5楼-- · 2020-09-10 10:08

我认为字符串和 number =>没有异常类可以处理它。 如果要进行这样的比较,请在"''中输入0,它将比较字符串与字符串。

派大星 ヾ
6楼-- · 2020-09-10 10:25

感谢Sandra Rossi

我知道比较文本和数字的错误方法,上面的注释中已经提到。 主要的答案是没有异常类,替代方式是在引号中放入0(仅针对此特定情况),建议进行比较的是检查字符串是否只有数字作为答案,这就是我的意思:)

一周热门 更多>