Manejo de Errores en Python: Uso de Try y Except

Clase 33 de 44Curso de Python: Comprehensions, Funciones y Manejo de Errores

Contenido del curso

Funciones

Manipulación de archivos y errores

Resumen

Cuando un programa de Python encuentra un error, por defecto detiene toda su ejecución. Esto significa que las líneas posteriores al fallo nunca se procesan, dejando al usuario sin respuesta y al sistema fuera de servicio. Aprender a controlar y manejar esos errores es una habilidad fundamental para escribir código robusto y profesional.

¿Qué sucede cuando Python encuentra un error sin control?

Imagina una operación tan simple como dividir un número entre cero [0:44]. Python lanza una excepción llamada ZeroDivisionError y detiene el programa de inmediato. Cualquier instrucción que venga después, como un print("hola"), jamás se ejecuta.

python print(10 / 0) print("hola") # Esta línea nunca se ejecuta

Este comportamiento es problemático en aplicaciones reales, donde una sola falla no debería tumbar todo el sistema. Para evitarlo, Python ofrece la estructura try except, que permite atrapar el error, procesarlo y continuar con la ejecución normal del programa.

¿Cómo funciona la estructura try except?

La palabra clave try define un bloque donde colocas el código que podría fallar. Inmediatamente después, la palabra clave except captura el tipo específico de error que se produzca [1:12]. El programa no se detiene: salta al bloque except, ejecuta lo que indiques allí y luego continúa con las líneas posteriores.

python try: print(10 / 0) except ZeroDivisionError as error: print("Error:", error)

print("hola") # Esta línea sí se ejecuta

Al ejecutar este código, Python imprime el mensaje de error y luego ejecuta el print("hola") sin problemas [1:50]. Una buena práctica en ingeniería es registrar estos errores en un sistema de tracking o reporte de fallos, en lugar de simplemente imprimirlos. Así puedes identificar en qué líneas y puntos falla tu sistema sin dejar de dar servicio.

¿Cómo atrapar errores de tipo assertion?

El assert es una instrucción que valida condiciones. Si la condición es falsa, lanza un AssertionError y puede incluir un mensaje personalizado [2:30].

python assert 1 != 1, "uno no es igual que uno"

Este error también se captura con try except:

python try: assert 1 != 1, "uno no es igual que uno" except AssertionError as error: print(error)

El resultado muestra el mensaje "uno no es igual que uno", pero la ejecución del programa continúa normalmente [3:18].

¿Se pueden capturar excepciones propias o personalizadas?

Cuando creas validaciones con lógica de negocio, puedes lanzar excepciones genéricas de tipo Exception [3:38]. Para capturarlas, usas el mismo patrón:

python try: # lógica de validación que lanza Exception raise Exception("No se presenta en menores de edad") except Exception as error: print(error)

Una forma sencilla de identificar el tipo de error es ejecutar primero el código sin try except, observar el nombre de la excepción que Python imprime y luego copiarlo en tu bloque except [3:50].

¿Cómo unificar múltiples errores en un solo bloque try?

No es necesario crear un try except para cada línea de código. Puedes agrupar toda la lógica en un solo bloque try y capturar cada tipo de error de forma independiente [4:28].

python try: print(10 / 0) assert 1 != 1, "uno no es igual que uno" # validación personalizada except ZeroDivisionError as error: print(error) except AssertionError as error: print(error) except Exception as error: print(error)

print("El programa continúa")

  • Python detecta el primer error dentro del bloque y salta al except correspondiente.
  • Las líneas restantes dentro del try no se ejecutan, porque no tendría sentido continuar si ya hubo un fallo [5:10].
  • Todo lo que esté fuera del bloque try sigue ejecutándose con normalidad.

Esto te da flexibilidad para agregar lógica después de capturar la excepción: mostrar un mensaje al usuario, solicitar nuevamente la información o reintentar la operación. La decisión depende de lo que tu aplicación necesite en cada caso.

Ahora que dominas el manejo de errores, el siguiente paso lógico es trabajar con archivos. ¿Has intentado leer un archivo TXT desde Python? Comparte tu experiencia con el manejo de excepciones en los comentarios.