5 - Errores
A la hora de programar existen dos clases de errores que todos experimentamos, los errores de sintaxis o Syntax errors y los errores en tiempo de ejecución o Run-time errors. Ahora verémos un par de errores y aprenderemos como aprovechar el mensaje que nos da Python cuando ocurre un error para entender que error ocurió y que parte del código lo provocó.
Syntax Errors o Errores de Sintaxis
En un gran resumen, los errores de sintaxis ocurren cuando escribimos algo en el código que no está contemplado por el lenguaje de programación. Podemos crear un Syntax Error cambiando el contenido en el archivo hello_world.py de la entrada anterior, haciendo algo como lo siguiente:
En este ejemplo, la segunda comilla simple ( ' ) al final de 'Hola mundo!' fue eliminada, sin esta, Python no sabe en donde termina el string. Si guardamos este código y lo intentamos correr, veremos que el código no puede ser ejecutado y veremos lo siguiente en la consola
EOL while scanning string literal.
EOL significa End Of Line, es decir Final de linea, básicamente este mensaje te dice que Python leyó hasta el final de la linea sin encontrar el final de algo llamado string literal
Dependiendo de que editor uses, es probable que esta linea se marque en rojo indicando un error, esta es una forma que tienen tanto los editores de código como el IDLE de Python para ayudarte a evitar errores o poder encontrarlos mucho más rápido.
Run-time Errors o Errores en Tiempo de Ejecución
El IDLE y los editores de código pueden encontrar errores de sintaxis antes de que estos ocurran, pero existen algunos errores que no pueden ser encontrados hasta que el programa se a ejecutado, los errores en tiempo de ejecución.
Podemos forzar un run-time error cambiando el código en nuestro archivo hello_world.py de la siguiente manera
Ahora hemos removido ambas comillas del string, como puedes notar, tanto el IDLE como los editores de código reconoces este texto del mismo modo en que lo hacían con las variables, pero veamos que ocurre al intentar ejecutar
Traceback (most recent call last):
File "hello_world.py", line 1, in <module>
print(Hola mundo!)
NameError: name 'Hola' is not defined
El texto mostrado al tener un error es llamado Traceback. Los tracebacks nos dan información útil sobre el error, el anterior nos dice lo suguiente
- El error ocurre en la linea 1 del archivo hello_world.py
- La linea que genera el error es print(Hola mundo!)
- Ocurrió un error del tipo NameError
- El error específico es name 'Hola' is not defined
al quitar las comillas del string, Python no puede reconocerlo como tal, y piensa que tanto Hola como Mundo son cosas diferentes que no han sido declaradas en el código.
Por ahora eso es todo, en la siguiente entrada veremos más a fondo el tema de los strings, aprenderemos a trabajar con ellos utilizando distintos métodos, crearlos, imprimirlos y guardarlos, por ahora te dejo un par de ejercicios muy simples sobre este tema.
- Crea un script que el IDLE no te deje correr debido a un Syntax Error
- Crea un script genere un Run-time Error