3

今天,这段有趣的 Python 代码发布在 Twitter 上

def f():
    try:
        raise KeyError
    finally:
        return 42


g = f()

执行它时,f()返回42并且没有异常冒泡堆栈,正如我所期望的那样。当替换return 42with eg aspass语句时,异常会按预期传播到函数外部。

但是,我想知道为什么在使用return. 毕竟,还有一个未捕获的异常。

raise是否意味着 python 函数可以自动清除异常?returnreturn

4

0 回答 0