为自定义异常定义基类

时间:2017-08-30 11:16:45

标签: python python-3.x

问题:

需要定义一个基类来处理错误吗?

背景

当我在示例中注意到他们定义class Error(Exception)时,我正在阅读User-Defined Exception Handling上的文档。其余的类都是它的子类。

当我定义自定义异常时,我只是编写了class MyExc(Exception)并且从不定义基类。

我不明白,特别是在他们的例子中,当它所做的全部通过时,需要定义class Error(Exception)。是的,对于特定情况,他们只能raise Error,但是他们还没有将其他两个异常定义为ExceptionError的子类吗?

1 个答案:

答案 0 :(得分:1)

当您编写库时,通常会为所有异常定义一个基本异常类,以便用户可以使用一种简单的方法同时处理它们,例如。

<强> MyLib中

class MyError(Exception):
    pass

其他一些代码

try:
   ...
except MyError:
   # MyLib error, handle it

但说实话这&#34; lib具体&#34;处理几乎不会发生(通常你要么捕获一个特定的例外,要么只捕获所有except Exception:)。所以我猜它并不那么重要。更多的是风格问题。