一時例外クラスは、モジュールとして使用されることを意図した Python スクリプトで「タイプ」を使用して動的に定義されます。このクラスのインスタンスがスクリプトのインポートでキャッチされると、クラスを認識しません。以下はコードスニペットです
# the throwing module, defines dynamically
def bad_function():
ExceptionClass = type( "FooBar", (Exception,),
{ "__init__": lambda self, msg: Exception.__init__(self, msg) })
raise ExceptionClass("ExceptionClass")
使用コード
import libt0
try:
libt0.bad_function()
#except libt0.FooBar as e:
#print e
except Exception as e:
print e
print e.__class__
libt0.FooBase がこのスクリプトに表示されない理由を説明できますか? 最後の行のオブザーバー出力。