C# 调用非';你不想被打电话吗?
让我们假设我有一个可变对象,它有一个函数可以对其进行变异,在某些情况下不应该调用该函数。在这种情况下,我应该如何应对调用函数的代码 例如:C# 调用非';你不想被打电话吗?,c#,exception,C#,Exception,让我们假设我有一个可变对象,它有一个函数可以对其进行变异,在某些情况下不应该调用该函数。在这种情况下,我应该如何应对调用函数的代码 例如: 对象:战斗 功能:游戏回合() 情况:战斗已经取得胜利 连续性:战斗将以不一致的状态结束 我能想到两种表演方式,但都不合适: 返回一个神奇的值,例如null。这有一个问题,即它不遵循Fail-Quicker思想,并使程序处于无效状态 引发异常。这是一个我觉得更合适的异常,但是我希望避免创建一个新的异常,如果它已经存在一个满足该角色的异常 对于第二种情况,
- 对象:战斗
- 功能:游戏回合()
- 情况:战斗已经取得胜利
- 连续性:战斗将以不一致的状态结束
null
。这有一个问题,即它不遵循Fail-Quicker思想,并使程序处于无效状态异常
,如果它已经存在一个满足该角色的异常注意:假设函数是文档化的,并且它明确表示在这些情况下不应该调用函数。尽管如此,我认为如果开发人员没有阅读文档,那么它应该很难失败。=)我会定义一个特定于此的应用程序异常。但是你可以在这里理智地使用InvalidOperationException。?你根本不应该抛出异常-异常是指“等等,什么……你是怎么做到的?”而不是“是的,我知道,不是现在…”不确定Fail Fast是否鼓励你使用异常,但我怀疑…@splite
invalidooperationexception
就是专门为此设计的。如果不是例外,那你有什么建议?@splite我不同意。“当方法调用对对象的当前状态无效时引发的异常”听起来非常适合这种情况。你会怎么做?同意,无效操作例外最合适。MSDN:“当方法调用对于对象的当前状态无效时引发的异常。”