问题:
需要定义一个基类来处理错误吗?
背景
当我在示例中注意到他们定义class Error(Exception)
时,我正在阅读User-Defined Exception Handling上的文档。其余的类都是它的子类。
当我定义自定义异常时,我只是编写了class MyExc(Exception)
并且从不定义基类。
我不明白,特别是在他们的例子中,当它所做的全部通过时,需要定义class Error(Exception)
。是的,对于特定情况,他们只能raise Error
,但是他们还没有将其他两个异常定义为Exception
副Error
的子类吗?
答案 0 :(得分:1)
当您编写库时,通常会为所有异常定义一个基本异常类,以便用户可以使用一种简单的方法同时处理它们,例如。
<强> MyLib中强>
class MyError(Exception):
pass
其他一些代码
try:
...
except MyError:
# MyLib error, handle it
但说实话这&#34; lib具体&#34;处理几乎不会发生(通常你要么捕获一个特定的例外,要么只捕获所有except Exception:
)。所以我猜它并不那么重要。更多的是风格问题。