当在处于不适当状态的对象上调用方法时,通常在Java中使用IllegalStateException。你会在Python中使用什么?
答案 0 :(得分:38)
在Python中,那将是ValueError
或其子类。
例如,尝试.read()
关闭的文件会引发“ValueError:对已关闭文件的I / O操作”。
答案 1 :(得分:12)
ValueError听起来对我很合适:
当内置操作或函数接收到具有正确类型但值不合适的参数时引发,并且情况不会由更精确的异常描述,例如IndexError。
答案 2 :(得分:2)
ValueError
似乎更类似于Java的IllegalArgumentException
。
RuntimeError听起来更适合我:
在检测到不属于其他任何类别的错误时引发。关联的值是一个字符串,指示出确切的错误。
大多数时候,您始终不想对此类错误进行任何特殊的错误处理,因此通用的RuntimeError
应该可以立即使用。
如果您确实希望将其与其他错误区别对待,只需从中派生自己的异常即可:
class IllegalStateError(RuntimeError):
pass