Python中与.Net的InvalidOperationException类似的异常是什么?
在 .Net 中,InvalidOperationException
是一种错误,表示程序在不合适的状态下尝试执行某个操作。那么在 Python
中,有什么类似的错误呢?
4 个回答
4
我部分同意Chris R的看法——你可以自己定义异常:
class InvalidOperationException(Exception): pass
通过这种方式定义自己的异常,你能获得很多好处,包括建立一个适合你需求的层次结构:
class MyExceptionBase(Exception): pass
class MyExceptionType1(MyExceptionBase): pass
class MyExceptionType2(MyExceptionBase): pass
# ...
try:
# something
except MyExceptionBase, exObj:
# handle several types of MyExceptionBase here...
不过,我不赞成直接抛出一个“异常”。
10
我可能会选择以下两个选项中的一个:
自定义一个异常,最好是这样定义:
class InvalidOperationException(Exception): pass
直接使用
Exception
我觉得没有完全对应的东西;在Python中,异常的层级结构看起来比较简单。
22
没有完全相同的替代品。通常情况下,ValueError
或 TypeError
就够用了。如果这两个都不太合适的话,可以考虑用 RuntimeError
或 NotImplementedError
。