python try-finally

时间:2011-12-20 11:42:38

标签: python exception try-catch finally

为什么foo中的异常未被注意,但bar中的异常被引发?

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

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

foo()
bar()

1 个答案:

答案 0 :(得分:26)

来自Python documentation

  

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