Python中与.Net的InvalidOperationException类似的异常是什么?

28 投票
4 回答
5397 浏览
提问于 2025-04-15 21:06

在 .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

我可能会选择以下两个选项中的一个:

  1. 自定义一个异常,最好是这样定义:

    class InvalidOperationException(Exception): pass

  2. 直接使用 Exception

我觉得没有完全对应的东西;在Python中,异常的层级结构看起来比较简单。

22

没有完全相同的替代品。通常情况下,ValueErrorTypeError 就够用了。如果这两个都不太合适的话,可以考虑用 RuntimeErrorNotImplementedError

撰写回答