【发布时间】:2021-02-12 13:05:57
【问题描述】:
我正在使用 Progress-4GL 版本 11.6,使用 appBuilder 和过程编辑器。
我只是忘了写一个程序,导致我的应用程序“崩溃”(至少,看起来是这样)。很明显,当我的应用程序“崩溃”时,我并不知道是缺少程序造成的,于是我开始尝试异常处理,结果如下:
这是有效的:
SESSION:ERROR-STACK-TRACE = TRUE. // in order to see the callstack
DO ON ERROR UNDO, THROW:
MESSAGE "This is nonsense: [" INT("blabla") "]" VIEW-AS ALERT-BOX.
CATCH eAnyError AS Progress.Lang.Error:
MESSAGE
"Error Number:~t" eAnyError:GetMessageNum(1) "~n"
"Error Text:~t" eAnyError:GetMessage(1) "~n"
"Callstack:~~t" eAnyError:CallStack
VIEW-AS ALERT-BOX BUTTONS OK TITLE "Error processing in the CATCH-clause".
END CATCH.
END.
这意味着:发生错误转换的情况(典型的编程问题),异常被捕获并在屏幕上显示相应的信息。
但是,这个似乎不起作用:
DO ON ERROR UNDO, THROW:
RUN I-do-not-exist.
CATCH eAnyAppError AS Progress.Lang.<xxx>Error:
MESSAGE
"Error Number:~t" eAny<xxx>Error:GetMessageNum(1) "~n"
"Error Text:~t" eAny<xxx>Error:GetMessage(1) "~n"
"Callstack:~~t" eAny<xxx>Error:CallStack
VIEW-AS ALERT-BOX BUTTONS OK TITLE "Error processing in the next CATCH-clause".
END CATCH.
END.
供您参考,Progress.Lang.<xxx>Error 条目表示我已尝试过以下情况:
Progress.Lang.ErrorProgress.Lang.ProErrorProgress.Lang.AppError
这些似乎都不起作用(代码已编译,但没有发现问题)。
有人知道如何解决这类问题吗?
【问题讨论】:
标签: exception openedge progress-4gl