7

具有以下一般定义:
fault - 错误的原因(编码错误)
error - 可能导致失败的错误状态
failure - 服务与正确服务的偏差

以下代码的正确应用程序是什么:

当余额为 100 或更少时,代码不应允许提款

  if (Balance<100) 
    {
    return false; 
    }
    else WithDraw();

据我了解,错误在于缺少 = 运算符。但是错误和失败会是什么?

4

2 回答 2

9

如您所说,代码中存在错误(编码或逻辑错误),比较中缺少运算符。如果余额永远不会正好为 100,则可能没有人注意到这个错误。

如果在某个时候余额为 100 并且检查已完成,则会暴露错误。系统将处于错误状态。它不应该允许撤回,而是允许撤回。如果允许提款,则系统无法正常工作,用户会看到失败。

在这个小例子中,很难区分错误和失败,因为用户可能会看到错误状态的后果。如果我们假设在代码中的其他地方还有另一次检查,并且因为提款没有完成,那么系统将处于错误状态(错误已实现),但另一种情况会掩盖这一情况,而用户不会看到了失败。

于 2012-08-06T13:02:29.520 回答
-3

这个问题需要一些上下文。这似乎也是一个“家庭作业”风格的问题。根据提供的定义,“缺少 = 运算符”可能不是“错误”。

正在测试的变量“余额”可能明确需要小于 100。

至于错误,您指的是“状态”。在这方面,您可能需要查看以前的控制流语句(if/for/while)来评估状态。

失败...好吧,也许您正在处理简单的转换错误(int/float),这在处理面向货币的程序时很常见。

当提到代码没有做它应该做的事情时,我们通常指的是:

  • 编译/运行时错误
  • 逻辑错误
于 2012-08-06T13:00:01.610 回答