【发布时间】:2020-06-27 17:24:45
【问题描述】:
我正在尝试从字符变量中填充整数变量。如果发现任何错误,我想显示错误消息并跟踪所有可能的失败案例。
//Defining variable
Define variable char_value as character no-undo initial "kk".
Define variable int_value as integer no-undo.
define variable ix as integer no-undo.
Assign int_value = integer(char_value) no-error.
IF ERROR-STATUS:ERROR OR ERROR-STATUS:NUM-MESSAGES > 0 THEN
DO:
MESSAGE ERROR-STATUS:NUM-MESSAGES
" errors occurred during conversion." SKIP
"Do you want to view them?"
VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
UPDATE view-errs AS LOGICAL.
IF view-errs THEN
DO ix = 1 TO ERROR-STATUS:NUM-MESSAGES:
MESSAGE ERROR-
STATUS:GET-NUMBER(ix)
ERROR-STATUS:GET-
MESSAGE(ix).
END.
END.
有两个条件我想知道。
- 我给了多少 char 值,所以没有。的错误返回将超过 1。
- 如何跟踪所有可能的失败案例。
【问题讨论】:
-
您的代码导致:“数字输入 k.(76) 中的字符无效”。这就是 Progress 必须提供的关于为什么该字符串的转换失败的所有信息。在那之后就没有什么可说的了。不评估 char_value 中的其他字符(好或坏)。
-
这样不行。一旦发现一个无效字符,转换就会停止。不会检测或报告其他错误。
标签: openedge progress-4gl