Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.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中是否存在类似于Java IllegalStateException的异常?_Java_Python_Exception - Fatal编程技术网

Python中是否存在类似于Java IllegalStateException的异常?

Python中是否存在类似于Java IllegalStateException的异常?,java,python,exception,Java,Python,Exception,IllegalStateException通常在Java中用于在不适当状态下调用对象的方法。在Python中,您会使用什么替代方法?听起来很适合我: 当内置操作或函数接收到类型正确但值不正确的参数,并且该情况没有通过更精确的异常(如)来描述时引发 在Python中,这将是ValueError,或者它的一个子类 例如,尝试.read()关闭的文件会引发“ValueError:关闭文件上的I/O操作”ValueError看起来更像是Java的IllegalArgumentException 听起来更

IllegalStateException通常在Java中用于在不适当状态下调用对象的方法。在Python中,您会使用什么替代方法?

听起来很适合我:

当内置操作或函数接收到类型正确但值不正确的参数,并且该情况没有通过更精确的异常(如)来描述时引发


在Python中,这将是
ValueError
,或者它的一个子类


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

ValueError
看起来更像是Java的
IllegalArgumentException

听起来更适合我:

当检测到不属于任何其他类别的错误时引发。关联的值是一个字符串,它指明了发生了什么错误

大多数情况下,您无论如何都不想对这样的错误执行任何特殊的错误处理,因此通用的
RuntimeError
应该已经足够了

如果您确实希望以与其他错误不同的方式处理它,只需从中派生您自己的异常:

class IllegalStateError(运行时错误):
通过

“不适当的值”非常模糊,我认为它适用于向函数传递参数,在某些情况下可以,但由于对象的当前状态无效。如果函数没有参数怎么办?在Python中,
self
是一个参数!