可能的导入错误类型

问题描述 投票:0回答:2

我正在尝试处理在python程序执行开始时在导入操作期间看到的可能错误。

try:
    import sys
    import re
    import foobar
except ImportError as impErr:
    print("[Error]: Failed to import {}.".format(impErr.args[0]))
    sys.exit(1)

以上代码运行正常。但是,我不足以捕捉导入期间可能出现的问题。例如,这会捕获ModuleNotFoundError异常吗?

exception ModuleNotFoundError是ImportError的子类,它是当找不到模块时,通过导入引发。它也被提出如果在sys.modules中找不到None。

3.6版的新功能。

如果仅使用ImportError还不够,有人可以告诉我如何使用OR条件从ImportError和ModuleNotFoundError捕获异常吗?

python
2个回答
0
投票
try:
    import sys
    import re
    import foobar
except (ImportError, ModuleNotFoundError) as (impErr, mNFE):
    print("[Error]: Failed to import {}." etc...
    sys.exit(1)

0
投票

仅使用ImportError就足够了,因为ModuleNotFoundErrorImportError的子类,但是如果您想在ModuleNotFoundError上做一些额外的事情,您可能想使用下面的代码。

try:
    import sys
    import re
    import foobar
except ModuleNotFoundError as moduleErr:
    print("[Error]: Failed to import (Module Not Found) {}.".format(moduleErr.args[0]))
    sys.exit(1)
except ImportError as impErr:
    print("[Error]: Failed to import (Import Error) {}.".format(impErr.args[0]))
    sys.exit(1)
© www.soinside.com 2019 - 2024. All rights reserved.