在 python 中,每当我们编写用户定义的异常时,我们都必须从 class 扩展它Exception。我的问题是为什么我们不能扩展它,BaseException它是异常层次结构的超类,Exception也是BaseException.
2 回答
9
BaseExceptionKeyboardInterrupt包括and之类的东西SystemExit,它们使用异常机制,但大多数人不应该抓住它。Throwable如果您熟悉的话,它类似于Java。直接派生的事物BaseException通常旨在关闭系统,同时执行finally块和上下文管理器__exit__方法以释放资源。
于 2013-07-23T05:50:19.143 回答
3
根据Python2 文档,有四个例外是BaseException:
BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
不是的三个Exception实际上不是错误,这意味着通常您不想将它们当作错误来捕获。 BaseException在 Python2.5 中添加(在此之前,没有BaseException,其他异常是从 子类化的Exception)。
于 2013-07-23T05:57:02.390 回答