You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PROGRESS 4GL:如何屏蔽来自其他过程的运行时错误消息?

Progress 4GL 屏蔽指定运行时错误的实现方式

你当前的代码会捕获所有错误并弹出提示,要屏蔽那些不该在运行时抛出的错误,核心思路是在CATCH块里判断错误编号,只处理需要关注的错误,忽略掉要屏蔽的类型。

以下是调整后的代码示例:

DO ON ERROR UNDO, THROW:
    FIND Customer 1000.
END.

CATCH eAnyError AS Progress.Lang.Error:
    // 这里定义需要屏蔽的错误编号,比如找不到记录的错误103
    IF eAnyError:GetMessageNum(1) = 103 THEN DO:
        // 屏蔽该错误,不做任何提示或处理
        RETURN.
    END.

    // 非屏蔽错误,正常弹出提示
    MESSAGE
        "Error Number:~t" eAnyError:GetMessageNum(1) "~n"
        "Error Text:~t" eAnyError:GetMessage(1)
        VIEW-AS ALERT-BOX BUTTONS OK TITLE "Error processing".
END CATCH.

如果需要屏蔽多个错误,可以用IN操作符批量判断:

CATCH eAnyError AS Progress.Lang.Error:
    // 批量屏蔽错误编号103、200、300
    IF eAnyError:GetMessageNum(1) IN (103, 200, 300) THEN DO:
        RETURN.
    END.

    // 处理其他错误
    MESSAGE
        "Error Number:~t" eAnyError:GetMessageNum(1) "~n"
        "Error Text:~t" eAnyError:GetMessage(1)
        VIEW-AS ALERT-BOX BUTTONS OK TITLE "Error processing".
END CATCH.

说明

  • 通过GetMessageNum(1)获取错误的编号,根据业务需求筛选需要屏蔽的类型
  • 被屏蔽的错误会直接跳过处理逻辑,不会弹出任何错误提示
  • 保留对其他关键错误的捕获和提示,确保异常情况能被及时感知

内容的提问来源于stack exchange,提问作者Bharat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 00:04:53