Cómo Usar Try y Except en Python: Guía Paso a Paso

DJC > Tutoriales

| Python |

En Python, manejar errores es fundamental para crear programas robustos y evitar que se detengan inesperadamente. Para ello, se utiliza la estructura try y except.

En este tutorial aprenderás cómo usar try y except en Python de manera efectiva, con ejemplos prácticos y buenas prácticas.


¿Qué es Try y Except en Python?

try y except son estructuras de control que permiten capturar y manejar excepciones o errores en Python.

  • try: Bloque de código que se intenta ejecutar.
  • except: Bloque de código que se ejecuta si ocurre un error en el try.

Esto evita que el programa se detenga ante un error inesperado.


Sintaxis Básica

try:
    # Código que puede causar un error
    resultado = 10 / 0
except ZeroDivisionError:
    # Código que se ejecuta si ocurre un error
    print("No se puede dividir entre cero")

Explicación:

  1. Python intenta ejecutar el bloque try.
  2. Si ocurre un ZeroDivisionError, Python ejecuta el bloque except.
  3. Si no ocurre ningún error, el bloque except se ignora.

Capturar Múltiples Excepciones

Puedes manejar diferentes tipos de errores con varios bloques except:

try:
    numero = int(input("Ingresa un número: "))
    resultado = 10 / numero
except ValueError:
    print("Debes ingresar un número válido")
except ZeroDivisionError:
    print("No se puede dividir entre cero")

Capturar Todas las Excepciones

También puedes capturar cualquier tipo de excepción:

try:
    archivo = open("archivo_inexistente.txt")
except Exception as e:
    print(f"Ocurrió un error: {e}")

⚠️ Nota: Usar except Exception captura todos los errores, pero no es recomendable usarlo siempre, ya que puede ocultar errores importantes.


Bloque Else y Finally

Python permite usar else y finally junto con try y except:

try:
    numero = int(input("Ingresa un número: "))
    resultado = 10 / numero
except ZeroDivisionError:
    print("No se puede dividir entre cero")
except ValueError:
    print("Debes ingresar un número válido")
else:
    print(f"El resultado es {resultado}")
finally:
    print("Este bloque se ejecuta siempre, ocurra o no un error")
  • else: Se ejecuta si no ocurre ningún error.
  • finally: Se ejecuta siempre, útil para liberar recursos como archivos o conexiones.

Buenas Prácticas al Usar Try Except

  1. Captura errores específicos, no uses except genérico si no es necesario.
  2. Evita usar try para controlar la lógica del programa; úsalo solo para manejar errores.
  3. Usa finally para liberar recursos críticos (archivos, conexiones a bases de datos).
  4. Añade mensajes claros para ayudar a depurar el error.

Ejemplo Completo: Manejo de Archivos

try:
    with open("datos.txt", "r") as archivo:
        contenido = archivo.read()
except FileNotFoundError:
    print("El archivo no existe")
except PermissionError:
    print("No tienes permisos para leer el archivo")
else:
    print(contenido)
finally:
    print("Proceso finalizado")

DJC > Tutoriales