我们有一个c ++的软件产品,由于记录的编译器问题会产生错误的代码(是的,我知道它本身很糟糕)。这与其他错误一起导致抛出访问冲突。
我们对此的回应是捕获错误并继续运行。
我的问题是,这是一种负责任的做法吗?如果应用程序在失败时如此生效,是否应该负责?警告用户并死亡会更负责任吗?
编辑:
让异常未处理的一个论点是访问冲突表明程序被阻止造成伤害,并且可能也没有做任何事情。我不确定我是否买了它。对此有何看法?
答案 0 :(得分:3)
我和Ignacio在一起:必须尽快修复该编译器,或者如果没有这样的解决方案,请跳槽。当然,这样做可能存在障碍,我猜你正在为实现这一目标寻找短期解决方案。 : - )
如果错误的代码问题非常狭窄地限制在一个已知的,大部分无害的情况下,那么我倾向于认为继续生产和运输带有错误代码的产品可能被认为是不负责任的,无论你如何处理违规行为。
如果这是非常狭窄约束,已知情况,您如何处理它取决于具体情况。你似乎知道故障是什么,所以你能够知道你是否可以继续面对这个错误。我倾向于倾向于报告并退出,但同样,这完全取决于故障究竟是什么。
答案 1 :(得分:2)
真的不言而喻,但是这样做是不负责任的,就像程序做了一些它没有做的事情(当它应该在某个地方设置一些实际上是悬挂指针的值),或者没有做任何不应该做的事情有(当它将某个变量随机化到一个不幸的地方,成为悬空指针的目的地时)。
损害最小化/缓解策略可能是校验和文件(但不是以微不足道的方式;实际上验证文件中的未经修改的数据是否未经修改)并经常自动保存。
您认为客户是否意识到这个问题?