24

为什么没有foo注意到whiz中的异常,但bar引发了异常?

def foo():
    try:
        raise Exception('foo')
    finally:
        return

def bar():
    try:
        raise Exception('bar')
    finally:
        pass

foo()
bar()
4

1 回答 1

35

Python 文档

如果 finally 子句引发另一个异常或执行 return 或 break 语句,则保存的异常将丢失。

于 2011-12-20T11:44:33.927 回答