Repaso
English
PythonIntermedioPY-26

En try / except / else / finally, ¿cuándo se ejecuta else?

Opciones

  1. Siempre, justo después del bloque try, pase lo que pase
  2. Solo cuando se lanzó una excepción dentro del bloque try
  3. Solo cuando no se lanzó ninguna excepción dentro del bloque try (Opción correcta)
  4. Solo después de que finally termine de ejecutar su código

Respuesta

Solo si no se lanzó ninguna excepción en try

Por qué

else se ejecuta solo si el bloque try terminó sin excepción.

Pon ahí el código que debe ejecutarse en caso de éxito, pero cuyos errores NO quieres que capture el except de arriba.

finally se ejecuta al final en todos los casos (éxito o error).

try:
    data = load()
except FileNotFoundError:
    data = {}
else:
    print("loaded", len(data))   # only on success
finally:
    print("done")                # always

Recuerda

try → except (error) / else (sin error) → finally (siempre).

Términos clave

Practica esta pregunta en Repaso