Python中是否存在类似于Java IllegalStateException的问题?

时间:2009-11-09 14:12:56

标签: java python exception

当在处于不适当状态的对象上调用方法时,通常在Java中使用IllegalStateException。你会在Python中使用什么?

3 个答案:

答案 0 :(得分:38)

在Python中,那将是ValueError或其子类。

例如,尝试.read()关闭的文件会引发“ValueError:对已关闭文件的I / O操作”。

答案 1 :(得分:12)

ValueError听起来对我很合适:

  

当内置操作或函数接收到具有正确类型但值不合适的参数时引发,并且情况不会由更精确的异常描述,例如IndexError

答案 2 :(得分:2)

ValueError似乎更类似于Java的IllegalArgumentException

RuntimeError听起来更适合我:

  

在检测到不属于其他任何类别的错误时引发。关联的值是一个字符串,指示出确切的错误。

大多数时候,您始终不想对此类错误进行任何特殊的错误处理,因此通用的RuntimeError应该可以立即使用。

如果您确实希望将其与其他错误区别对待,只需从中派生自己的异常即可:

class IllegalStateError(RuntimeError):
    pass