我正在尝试处理在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捕获异常吗?
try:
import sys
import re
import foobar
except (ImportError, ModuleNotFoundError) as (impErr, mNFE):
print("[Error]: Failed to import {}." etc...
sys.exit(1)
仅使用ImportError
就足够了,因为ModuleNotFoundError
是ImportError
的子类,但是如果您想在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)