python попробуй наконец - PullRequest
       6

python попробуй наконец

18 голосов
/ 20 декабря 2011

Почему исключение в foo свистит незамеченным, но возникает исключение в bar?

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

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

foo()
bar()

1 Ответ

27 голосов
/ 20 декабря 2011

Из документации Python :

Если предложение finally вызывает другое исключение или выполняет оператор return или break, сохраненное исключение теряется.

...