首页 > 解决方案 > 您对在错误时间调用的函数使用什么错误类型?

问题描述

我有一个表示有限状态机的 Python 3 类,具有用于从状态转换到状态的操作的函数。

如果用户调用while is或者如果用户调用actor.take_train()while actor.stateis ,我应该引发什么类型的错误?在大多数工作场所,最后一种情况可能也是不明智的,但你就是这样做的。BEDactor.sleep()actor.stateWORK

函数调用有时有效,但有时无效,我不知道在这种情况下是否存在适合引发的已定义错误。

有限状态机 图片由矮人基金会提供

标签: python-3.xexceptionstate-machine

解决方案


好吧,如果您正在专门寻找异常,可能是从 RuntimeError 派生的自定义异常(ValueError 将是最接近标准异常,但并不完全匹配)。

但是是否甚至抛出异常是对状态机的特定用例的考虑,以及更有用/更方便的方法,例如,您可能只想记录无效信号而不做任何事情,或者返回某种占位符。


推荐阅读