我想从函数中捕获异常,而如果函数中存在finally
部分,则外部部分无法知道异常存在。
以下是代码:
def f():
l = []
try:
raise Exception('fake')
except:
raise e
finally:
return l
try:
f()
except:
print 'wrong'
else:
print 'right'
输出
right
如果我删除“finally”部分,它将按预期输出错误。
我知道来自here的原因,但我不知道处理这种情况的任何优雅方式,如果我需要 re-raise 和{{我应该如何编写代码? 1}}在一起?