0Pricing
Python Academy · Lección

try / except / else / finally

Estructure bloques de gestión de excepciones para cualquier situación.

try / except / else / finally es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.

Introducción

try/except/else/finally de Python le proporciona un control completo sobre la gestión de errores y la limpieza.

try/except básico

try: risky_code() except ExceptionType: handle() — Python ejecuta el bloque except únicamente cuando se lanza ese tipo de excepción.
try:
    x = int('abc')
except ValueError:
    print('not a number')

Capturar el objeto de excepción

except ValueError as e: vincula la excepción a e. Utilice str(e) o e.args para obtener el mensaje.
try:
    int('oops')
except ValueError as e:
    print(f'Error: {e}')

Capturar varias excepciones

except (TypeError, ValueError) as e: captura cualquiera de los dos tipos.
for val in ['abc', None, 42]:
    try:
        print(int(val))
    except (TypeError, ValueError) as e:
        print(f'skipping {val!r}: {e}')

except vacío (evítelo)

except: (sin tipo) captura TODO, incluidos KeyboardInterrupt y SystemExit. Casi siempre es un error: especifique siempre los tipos.
try:
    risky = 1/0
except ZeroDivisionError:
    print('division error')  # specific

Varias cláusulas except

Puede tener varios bloques except, cada uno para gestionar un tipo diferente. Python los prueba en orden.
def process(val):
    try:
        return 10 / int(val)
    except ValueError:
        print('not a number')
    except ZeroDivisionError:
        print('division by zero')
process('abc')
process('0')

Cláusula else

try/except/else: else se ejecuta únicamente si NO se ha producido ninguna excepción. Utilícela para el código que debe ejecutarse cuando todo termina correctamente.
try:
    x = int('42')
except ValueError:
    print('bad input')
else:
    print('parsed:', x)

Cláusula finally

finally: se ejecuta SIEMPRE: después de que try termine correctamente, después de except e incluso después de return o break. Es perfecta para la limpieza.
def read_file(path):
    f = None
    try:
        f = open(path)
        return f.read()
    except FileNotFoundError:
        return None
    finally:
        if f: f.close()
print(read_file('/nonexistent'))

finally con return

Si existen tanto un return como un finally, finally se ejecuta primero, pero prevalece el valor devuelto por finally. Téngalo en cuenta.
def demo():
    try:
        return 'try'
    finally:
        return 'finally'  # overrides!
print(demo())

Bloques try anidados

Los bloques try pueden anidarse. Una excepción interna se propaga hacia fuera si el except interno no la captura.
try:
    try:
        x = 1/0
    except ValueError:
        print('inner')
except ZeroDivisionError:
    print('outer caught it')

Registrar excepciones

import logging; logging.exception('msg') registra el traceback completo. Es perfecto para código en producción.
import logging
try:
    1/0
except ZeroDivisionError:
    logging.exception('Caught an error')

Comprobación rápida

¿Qué cláusula se ejecuta independientemente de si se ha producido una excepción?

Resumen

try/except captura errores. else se ejecuta cuando todo termina correctamente. finally siempre se ejecuta (para la limpieza). Capture tipos específicos y evite except vacío. Utilice as e para acceder a la excepción.

Siga avanzando

¡Excelente trabajo! Continúe con la siguiente lección para seguir progresando.

Preguntas frecuentes

¿La lección «try / except / else / finally» es gratis?

Sí — el texto completo de «try / except / else / finally» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.

¿Qué aprenderé en «try / except / else / finally»?

Estructure bloques de gestión de excepciones para cualquier situación. Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python Academy?

No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «try / except / else / finally»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python Academy?

Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Comprensión de las excepciones
  2. try / except / else / finally
  3. Lanzamiento y relanzamiento de excepciones
  4. Clases de excepciones personalizadas
← Volver a Python Academy