Pythonでは、を発生さimport does_not_exist
せImportError
、
import exists
exists.py
:
import does_not_exist
も発生しImportError
ます。
コードの違いをどのように見分ける必要がありますか?
Pythonでは、を発生さimport does_not_exist
せImportError
、
import exists
exists.py
:
import does_not_exist
も発生しImportError
ます。
コードの違いをどのように見分ける必要がありますか?
私が知っている唯一の方法は、トップレベルのモジュール名が「存在する」かどうかを確認することです例外のメッセージにあるかどうか:
try:
import exists
except ImportError as exc:
if "exists" in str(exc):
pass
else:
raise
これは Python の ImportError に対する機能要求でしょうか? モジュール名の変数を持つことは確かに便利です..
トレースバックの tb_next を使用できます。別のモジュールで例外が発生した場合は None とは異なります
import sys
try:
import exists
except Exception, e:
print "None on exists", sys.exc_info()[2].tb_next == None
try:
import notexists
except Exception, e:
print "None on notexists", sys.exc_info()[2].tb_next == None
>>> None on exists False
>>> None on notexists True