Errores y excepciones en Python: evita que tu programa muera en el intento
Aprende a manejar errores y excepciones en Python de forma práctica. Entenderás qué ocurre cuando un programa falla, cómo leer un traceback y cómo usar try, except, else, finally y raise para …
Contenido de la guía ⌄
Tu programa funciona perfectamente… hasta que el usuario hace algo que no esperabas.
Imagina que tu programa pregunta la edad del usuario. Mientras recibe valores como 18, 25 o 42, todo parece estar bajo control.
Pero el software vive en el mundo real. Un usuario escribe hola donde tú esperabas un número y Python encuentra una situación que no puede resolver siguiendo el camino normal de ejecución.
El programa podía estar perfectamente escrito y aun así encontrarse durante la ejecución con una situación inesperada. Si no existe una respuesta para ella, el flujo normal se interrumpe.
La pregunta interesante ya no es solamente «¿cómo evito los errores?», sino: ¿qué debería hacer mi programa cuando uno ocurra?
Qué vamos a aprender
No vamos a memorizar palabras como
try,
except o
finally
de forma aislada. Vamos a seguir el recorrido completo
de un fallo: observar qué ocurrió, recuperar el flujo
y finalmente diseñar una respuesta consciente.
Entender el fallo
Provocaremos errores y aprenderemos a leer la información que Python entrega cuando algo sale mal.
Recuperar el flujo
Interceptaremos excepciones concretas y definiremos una respuesta sin ocultar qué fue lo que ocurrió.
Controlar el comportamiento
Utilizaremos distintos caminos de ejecución para decidir qué sucede cuando una operación falla, funciona o necesita ejecutar una acción final.
Construir un programa que no colapse simplemente porque el usuario introdujo algo inesperado.
Error no siempre significa lo mismo
Antes de aprender a manejar excepciones conviene distinguir dos situaciones que, aunque ambas producen mensajes de error, ocurren en momentos diferentes.
Error de sintaxis
print("Hola"
Python no puede interpretar correctamente la estructura del programa. El código ni siquiera puede comenzar su ejecución normal.
Excepción
resultado = 10 / 0
Esta instrucción es perfectamente válida para Python. El problema aparece cuando intenta ejecutarla: ningún número puede dividirse entre cero.
En esta guía nos centraremos especialmente en las excepciones que aparecen mientras el programa se está ejecutando y en cómo diseñar una respuesta para ellas.
numero = 10
divisor = 0
resultado = numero / divisor
print(resultado)
Cómo leer un traceback
Cuando Python detiene un programa no se limita a decir «algo salió mal». El traceback intenta mostrarnos dónde ocurrió el problema y qué tipo de excepción lo produjo.
En un traceback sencillo mira primero la última línea: normalmente allí encontrarás el tipo de excepción y su mensaje. Después sube hasta la instrucción que la provocó.
numero = 10
divisor = 0
try:
resultado = numero / divisor
except ZeroDivisionError:
print("No puedes dividir entre cero.")
print("El programa continúa.")
Qué hace realmente except
try no convierte una operación peligrosa en una
operación segura. Simplemente le indica a Python:
«intenta ejecutar esto y, si aparece cierta excepción,
ya tengo preparada una respuesta».
Manejar una excepción no significa fingir que nunca ocurrió. Significa controlar qué hará nuestro programa cuando aparezca una situación que conocemos y sabemos cómo responder.
try:
numero = int(input("Escribe un número: "))
resultado = 100 / numero
except ValueError:
print("Debes escribir un número válido.")
except ZeroDivisionError:
print("El número no puede ser cero.")
else:
print(f"Resultado: {resultado}")
Comentarios y valoraciones
No hay comentarios aún. ¡Sé el primero en opinar!