调用一个不打算调用的函数时是否会抛出系统异常?

时间:2015-05-06 20:07:16

标签: c# exception

让我说我有一个可变对象,它有一个变异的函数,并且在某些情况下不应该调用该函数。在这种情况下,我应该如何对调用函数的代码作出反应?

例如:

  • 对象:战斗
  • 功能:PlayRound()
  • 情况:战斗已经获胜者
  • Consecuence :战斗将以不一致的状态结束

我可以想到两种表演方式,但都没有找到足够的表现:

  1. 返回魔术值,例如null。这有一个问题,就是它不遵循Fail Faster意识形态,并使程序保持无效状态。

  2. 抛出异常。这是我觉得更适合的那个,但是我想避免创建一个新的Exception,如果它已经存在一个满足该角色的那个。

  3. 对于第二种情况,我可以抛出ArgumentInvalidException之类的东西 但我找不到这种情况的等价物。

    此方案存在等效的现有异常?

    注意:我们假设该函数已被记录,并明确表示在这些情况下永远不应调用该函数。如果开发人员无法阅读文档=)

    ,我认为它应该会失败

1 个答案:

答案 0 :(得分:1)

我定义了一个特定于此的应用程序异常。但是你可以在这里使用InvalidOperationException。