2010-03-31 72 views

回答

9

没有直接的等价物。如果两者都不合适,则通常可以使用ValueErrorTypeErrorRuntimeErrorNotImplementedError

4

我的两个选项之一之间可能会去:

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

    class InvalidOperationException(Exception): pass

  2. 只需使用Exception

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

2

我会部分与克里斯 - [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... 

虽然我不同意扔裸体“例外”。