代码之家  ›  专栏  ›  技术社区  ›  Konstantin Spirin

在python中.NET InvalidOperationException的模拟是什么?

  •  17
  • Konstantin Spirin  · 技术社区  · 16 年前

    什么是.NET的模拟 InvalidOperationException 在里面 Python ?

    3 回复  |  直到 16 年前
        1
  •  12
  •   Ignacio Vazquez-Abrams    16 年前

    没有直接的等价物。通常 ValueError TypeError 够了,也许是 RuntimeError NotImplementedError 如果两者都不合适的话。

        2
  •  5
  •   Chris R    16 年前

    我可能会在两种选择中选择一种:

    1. 自定义异常,最好定义如下:

      class InvalidOperationException(Exception): pass

    2. 只是使用 Exception

    我不相信有直接的模拟;Python似乎有一个非常平坦的异常层次结构。

        3
  •  3
  •   Kevin Little    16 年前

    我部分同意克里斯·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...
    

    不过,我不同意提出一个赤裸裸的“例外”。