> 文档中心 > 【ModuleNotFoundError & ImportError】之二者的关系

【ModuleNotFoundError & ImportError】之二者的关系

目录

  • 前言
  • 1 官方定义
  • 2 由官方定义梳理出的关系
    • 2.1. 继承关系
    • 2.2. 报错情形区分
  • 总结

前言

提示:这里可以添加本文要记录的大概内容:

昨天学习了 Exception class,明白了异常类之间也有继承关系。本文是从继承关系来了解 ModuleNotFoundError & ImportError 之间的关系。


提示:以下是本篇文章正文内容,下面案例可供参考

1 官方定义

Python 3.11.0b1官方文档给出了 ModuleNotFoundError & ImportError 的定义,如下所示:

【ModuleNotFoundError & ImportError】之二者的关系


2 由官方定义梳理出的关系

2.1. 继承关系

  1. ImportError 是父类,ModuleNotFoundError 是其子类。
  2. 在报错这件事情上,先看 ModuleNotFoundError 能不能捕获异常,若能捕获则报 ModuleNotFoundError,若不能捕获,则报 ImporError。

2.2. 报错情形区分

  1. exception ImportError
    (1) 当 import 语句尝试加载模块遇到麻烦时将被引发。
    (2) 当 from … import 中的 “from list” 存在无法找到的名称时也会被引发。

  2. exception ModuleNotFoundError
    (1) 当一个模块无法被定位时将由 import 引发。
    (2) 当在 sys.modules 中找到 None 时也会被引发。


总结

(略)



哈尔滨心理咨询网