En try / except / else / finally, ¿cuándo se ejecuta else?
Opciones
- Siempre, justo después del bloque
try, pase lo que pase - Solo cuando se lanzó una excepción dentro del bloque
try - Solo cuando no se lanzó ninguna excepción dentro del bloque
try(Opción correcta) - Solo después de que
finallytermine 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") # alwaysRecuerda
try → except (error) / else (sin error) → finally (siempre).