なぜfoo
の例外は気付かれませんが、bar
の例外は発生しますか?python try-finally
def foo():
try:
raise Exception('foo')
finally:
return
def bar():
try:
raise Exception('bar')
finally:
pass
foo()
bar()
なぜfoo
の例外は気付かれませんが、bar
の例外は発生しますか?python try-finally
def foo():
try:
raise Exception('foo')
finally:
return
def bar():
try:
raise Exception('bar')
finally:
pass
foo()
bar()
finally節は別の例外を発生させたり、リターンまたはブレーク文を実行した場合、保存された例外が失われます。
[戻り値は例外です](http://stackoverflow.com/questions/517060/return-eats-exception) – gecco