如何处理非致命错误条件

Cri*_*urf 2 c# error-handling

我不确定这是否重复,但如果是,请随时关闭.

背景:我有一个计时器组件用于我正在编写的支持Stop和Pause方法的游戏.有问题的非严重错误案例就是在定时器暂停时调用Pause,这不是致命的,但它不会导致方法名称隐含的状态改变

问题:
1.人们通常如何表示非致命但异常的情况?
2.在这些情况下,我真的应该抛出异常吗?考虑到暂停时暂停不会造成任何伤害,我认为这有点严厉
.我是在过度思考这个

更新:
基于响应和评论,这里是我选择采取的策略:在开发构建中会发生异常,因为我考虑了这些错误,我想抓住它们并纠正它们.我不能证明发布版本中的异常是正当的,因为这些错误不会破坏游戏状态,我不认为应用程序的用户会因为我没有正确编码而失去他们难以获得的分数

感谢您的所有回复,这对我来说非常有教育意义.

Mar*_*ris 7

如果计时器已经暂停,我认为你可以忽略通话.假设该方法被称为Pause(),那么客户端只需要在方法调用之后暂停计时器,并且只有在不存在时才抛出异常; 该方法并不意味着对计时器的当前状态有任何要求.

另一方面,如果该方法被称为ChangeTimerFromRunningToPaused(),那么这意味着只有在正在运行的计时器上调用它才有效.在这些情况下,我希望它会抛出异常,通知客户端计时器未处于有效状态以处理此方法调用.