[Python] Does 'finally' always execute in Python?

Discussão em 'Python' iniciado por Stack, Maio 14, 2025.

  1. Stack

    Stack Membro Participativo

    For any possible try-finally block in Python, is it guaranteed that the finally block will always be executed?

    For example, let’s say I return while in an except block:

    try:
    1/0
    except ZeroDivisionError:
    return
    finally:
    print("Does this code run?")


    Or maybe I re-raise an Exception:

    try:
    1/0
    except ZeroDivisionError:
    raise
    finally:
    print("What about this code?")


    Testing shows that finally does get executed for the above examples, but I imagine there are other scenarios I haven't thought of.

    Are there any scenarios in which a finally block can fail to execute in Python?

    Continue reading...

Compartilhe esta Página