调用不打算调用的函数时是否有系统异常要引发?



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

例如:

  • 对象:战斗
  • 函数: 回合()
  • 环境:战斗已经赢家
  • 承认:战斗将以不一致的状态结束

我能想到两种行为方式,这两种方式都不合适:

  1. 返回一个魔术值,例如null。这有一个问题,即它不遵循"更快失败"的意识形态,并使程序处于无效状态。

  2. 引发异常。这是我觉得更合适的,但我想避免创建一个新的Exception如果它已经存在,它履行了这个角色。

对于第二种情况,我可以抛出类似ArgumentInvalidException但我找不到这种情况的等效项。

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

注意:假设该函数已记录,并且明确表示在这些情况下不应调用该函数。我仍然认为如果开发人员无法阅读文档,它应该会失败=)

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

最新更新