Errores y excepciones en Python: cómo leerlos y gestionarlos
Cómo entender los mensajes de error de Python y evitar que un fallo corte tu programa, según el tutorial oficial.
En Python hay, según el tutorial oficial, al menos dos tipos de errores: los errores de sintaxis y las excepciones. Un error de sintaxis impide que el programa empiece; una excepción aparece cuando el programa ya se está ejecutando y algo sale mal. Saber distinguirlos y leer el mensaje es la mitad de la solución.
Errores de sintaxis
Se producen cuando el código no está bien escrito, por ejemplo si falta algo. Python te muestra la línea y unas flechas que señalan dónde detectó el problema:
while True print('Hola')
SyntaxError: invalid syntax
La documentación avisa de que el lugar señalado no siempre es el que hay que arreglar: aquí se detecta en print(), pero falta el signo de dos puntos (:) justo antes.
Excepciones
Una instrucción puede estar bien escrita y fallar al ejecutarse. Son las excepciones, y no son necesariamente fatales: puedes gestionarlas. Estos son los ejemplos del tutorial:
10 * (1 / 0) # ZeroDivisionError: division by zero
4 + spam * 3 # NameError: name 'spam' is not defined
'2' + 2 # TypeError: can only concatenate str (not "int") to str
Cómo leer un mensaje de error
- La última línea dice qué ha pasado: el tipo de excepción (
NameError) y una explicación. - Lo anterior (el traceback) muestra el contexto: en qué archivo y en qué línea ocurrió, y qué llamadas llevaron hasta ahí.
- Empieza por la última línea y sube hasta la línea de tu código.
Gestionar excepciones con try y except
Para que un fallo no corte el programa, envuelve el código dudoso en try y captura la excepción concreta:
try:
numero = int(input("Dime un número: "))
print(10 / numero)
except ValueError:
print("Eso no es un número.")
except ZeroDivisionError:
print("No se puede dividir entre cero.")
Captura tipos concretos, no todos a la vez: así no ocultas errores que sí deberías ver.
Consejos para empezar
- Lee el error entero antes de cambiar nada.
- Cambia una cosa cada vez y vuelve a probar.
- Si no lo entiendes, busca el nombre de la excepción en la documentación de Python.
Para una guía más general de cómo encontrar fallos, mira depurar errores en programación. Y si aún no tienes Python instalado, empieza por instalar Python y escribir tu primer programa.
Fuentes consultadas
- Errores y excepciones (El tutorial de Python) (Python Software Foundation)
Guía de PortalTec: https://www.portaltec.eu/articulos/errores-y-excepciones-python/
