0

我们有一个 C++ 软件产品,由于编译器的记录问题会生成错误代码(是的,我知道它本身很糟糕)。这与其他错误一起导致引发访问冲突。

我们对此的回应是捕捉错误并继续运行。

我的问题是,这是一种负责任的方法吗?当应用程序发生如此灾难性的失败时,让应用程序继续存在是否有责任?提醒用户并死亡会更负责任吗?

编辑:
让异常未处理的论点之一是访问冲突表明程序被阻止造成伤害,并且可能还没有做任何事情。我不确定我是否买了那个。对此有何看法?

4

2 回答 2

3

我和 Ignacio 在一起:必须尽快修复那个编译器,或者如果没有这样的修复,那就跳船。当然,这样做可能会遇到障碍,我猜您正在寻找实现该目标的短期解决方案。:-)

如果错误代码问题不是非常狭窄地限制在已知的、基本上无害的情况下,那么我倾向于认为继续使用错误代码生产和运送产品可能被认为是不负责任的,无论您如何处理违规行为。

如果这是一个非常有限的已知情况,您如何处理它取决于具体情况。您似乎知道错误是什么,因此您可以知道面对错误是否可以继续前进。我倾向于报告并退出,但同样,这完全取决于实际的错误是什么。

于 2010-04-30T09:28:15.810 回答
2

真的是不言而喻,但是表现得好像程序做了它没有做的事情(当它应该在某个地方设置一些实际上是一个悬空指针的值时),或者没有做它不应该做的事情(当它在某个不幸的地方随机化了一些变量,以至于成为悬空指针的目的地)。

损害最小化/减轻策略可能是校验和文件(但不是以一种微不足道的方式;实际上验证文件中未触及的数据未被修改)并经常自动保存。

您认为客户是否意识到问题所在?

于 2010-04-30T09:28:54.650 回答