Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 对于在错误时间调用的函数,您使用哪种错误类型?_Python 3.x_Exception_State Machine - Fatal编程技术网

Python 3.x 对于在错误时间调用的函数,您使用哪种错误类型?

Python 3.x 对于在错误时间调用的函数,您使用哪种错误类型?,python-3.x,exception,state-machine,Python 3.x,Exception,State Machine,我有一个Python3类,它表示一个有限状态机,具有用于从一个状态转换到另一个状态的操作的函数 如果用户调用actor.take_train()而actor.state是BED,或者如果用户调用actor.sleep()而actor.state是WORK,我应该引发什么类型的错误?在大多数工作场所,最后一种情况可能也是不明智的,但你确实是这样 函数调用有时有效,但在其他情况下无效,我不知道在这种情况下是否有合适的定义错误 图片来源于如果您特别查找异常,可能是从RuntimeError派生的自定

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

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

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


图片来源于

如果您特别查找异常,可能是从RuntimeError派生的自定义异常(ValueError可能是最接近的标准异常,但并不完全匹配)

但是,是否抛出异常还要考虑状态机的特定用例,以及什么更有用/更方便,例如,您可能只想记录无效信号,什么也不做,或者返回某种占位符