gpt4 book ai didi

c++ - 处理不应崩溃的关键应用程序中的异常

转载 作者:搜寻专家 更新时间:2023-10-31 01:21:50 25 4
gpt4 key购买 nike

我有一个正在调试的服务器应用程序,它基本上为请求它的应用程序解析脚本(VBscript、Python、Jscript 和 SQl)。

这是一个非常关键的应用程序,如果它崩溃会对很多用户造成严重破坏。我面临的问题是如何处理异常,以便应用程序可以继续运行,并且用户知道他们的脚本是否有问题。

示例:在 SQL 脚本中,应用程序通常返回一组值(日期、数字、字符串和数字)。所以脚本必须在末尾有这样的声明:

进入 dtDate、Number、Number、sString。这些是应用程序内置的值,服务器应用程序知道如何解释这些值。这些字段在服务器应用程序中被视为数组的一部分。返回值通常应按特定顺序排列,因为这些字段在数组中的索引是在服务器应用程序中硬编码的。

现在,当编写脚本的用户忘记其中一个字段时,最后一个字段(通常是字符串)会抛出 IndexOutofBoundsException。

问题是如何在不取消应用程序的情况下从这种性质的异常中恢复?

另一个示例是脚本中的错误,无法为其生成错误解析消息。这些错误只是在应用程序的后台消失,并最终导致服务器应用程序崩溃。它失败的脚本不一定无法完全执行,但它的一部分不执行而其他部分执行,这使得它对用户来说看起来很奇怪。

此服务器应用程序是原生 C++ 应用程序并使用 COM 技术。

我想知道是否有人知道在不使应用程序崩溃的情况下处理上述异常的最佳方法是什么?

最佳答案

你不能用异常来处理这样的问题。您可以有一个顶级 catch block 来捕获异常,并希望程序的太多状态不会被不可恢复地吞噬,以试图让程序保持事件状态。仍然没有让用户满意,她正在等待的查询仍然没有运行。

确保更改不会破坏关键业务应用程序的稳定性需要组织。在允许投入生产之前签署更改并验证它们是否按预期工作的人员。质量保证。

关于c++ - 处理不应崩溃的关键应用程序中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3494226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com