Saltar a contenido

Errores

Cuando editamos un programa, a veces cometemos errores. ¿Que pasa si escribimos mal una instrucción? La ejecución del programa se detendrá y se mostrará un mensaje para advertirnos de que ha habido un fallo.

Por ejemplo, supongamos que se nos olvida poner los paréntesis de la instrucción print():

print 5+3

en lugar del resultado de la suma, veremos lo siguiente:

SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?

De todas formas, antes de ejecutarlo, tenemos que guardarlo. IDLE detectará el fallo, nos avisará, y el programa no llegará a guardarse ni a ejecutarse.

Pero no todos los errores son de sintaxis. Por ejemplo, el siguiente programa...

PrimeroConError.py
1
2
3
4
print (15+0)
print (15-0)
print (15*0)
print (15/0)

... muestra los tres primeros resultados, pero al llegar a la cuarta sentencia, obtenemos:

¿Que significa este mensaje tan siniestro? El texto del error es:

Traceback (most recent call last):
  File "/usr/lib/python3.13/idlelib/run.py", line 590, in runcode
    exec(code, self.locals)
    ~~~~^^^^^^^^^^^^^^^^^^^
  File "/carpeta/PrimeroConError.py", line 4, in <module>
    print (15/0)
           ~~^~
ZeroDivisionError: division by zero

Veamos algunas pistas:

  • La palabra Traceback indica que se ha producido un fallo en el programa y que el intérprete de Python está analizándolo.

  • Tenemos que fijarnos en la última línea para entender lo que ha pasado:

    ZeroDivisionError: division by zero
    

    Una división es una operación equivalente a hacer un reparto. ¿Se puede repartir 15 unidades entre cero personas? No hay reparto. Dividir un número entre cero no siempre es una buena idea.

  • La dos líneas antes de la última muestran la instrucción infractora:

    print (15/0)
    
  • Y antes se muestra el archivo y número de línea donde se ha encontrado la sentencia culpable:

    File "/carpeta/PrimeroConError.py", line 4,
    

¿Que podemos hacer si se produce un error? Corregir el programa y volver a ejecutarlo.