Python异常处理机制的底层实现

  • 内容
  • 评论
  • 相关

前面章节中,我们详细介绍了try except异常处理的用法,简单来说,当位于 try 块中的程序执行出现异常时,会将该种异常捕获,同时找到对应的 except 块处理该异常,那么这里就有一个问题,它是如何找到对应的 except 块的呢?

我们知道,一个 try 块也可以对应多个 except 块,一个 except 块可以同时处理多种异常。如果我们想使用一个 except 块处理所有异常,就可以这样写:

try:
    #...
except Exception:
    #...

这种情况下,对于 try 块中可能出现的任何异常,Python 解释器都会交给仅有的这个 except 块处理,因为它的参数是 Exception,表示可以接收任何类型的异常。

注意,对于可以接收任何异常的 except 来说,其后可以跟 Exception,也可以不跟任何参数,但表示的含义都是一样的。

这里就要详细介绍一下 Exception。要知道,为了表示程序中可能出现的各种异常,Python 提供了大量的异常类,这些异常类之间有严格的继承关系,图 1 显示了 Python 的常见异常类之间的继承关系。

Python 的常见异常类之间的继承关系

图 1 Python 的常见异常类之间的继承关系

本文标题:Python异常处理机制的底层实现

本文地址:https://www.hosteonscn.com/7727.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注