假设我正在使用库X
,该库指定例如exception.BaseError
是X
的所有例外的基类。确定要在Python中捕获哪些例外
现在,还有另外一个例外,比如说X.FooError
,它当然是从exception.BaseError
继承的,但是更通用一些,比方说它处理无效输入。我们假设还有很多其他的类,从BaseError
开始,但是对于一般情况都是如此。
X
|
BaseError
|
FooError
所以我想然后检查无效输入。那么我应该抓住哪个例外?当然,捕捉每个单独的异常是不可能的,所以我赶上X.BaseError
,然后打印一条错误消息。或者我可以专门找到X.FooError
,但后来我错过了所有其他的错误情况。
这是做到这一点的标准方式 - 捕捉基本异常?如果是,那么为什么还存在其他例外情况?对于我们想要捕捉特定异常的广义情况?
但是为什么抓住派生的一个,当基地可以处理一切? – user225312 2011-06-01 10:50:34
因为您可能想要以与基本异常不同的方式处理派生异常。 – 2011-06-01 10:52:19
但是,如果我不想以不同的方式处理特定异常,那么是否使用基本异常类呢? – user225312 2011-06-01 10:53:24