Reconocer Excepciones Comunes
En este paso, exploraremos las excepciones comunes. A diferencia de los errores de sintaxis, las excepciones ocurren durante la ejecución del programa. El código es sintácticamente correcto, pero surge un error mientras se está ejecutando.
El archivo common_exceptions.py está listo para usted en el directorio ~/project.
Primero, vamos a provocar un ZeroDivisionError. Abra common_exceptions.py en el editor y agregue el siguiente código:
numerator = 10
denominator = 0
result = numerator / denominator
print(result)
Guarde el archivo y ejecútelo desde la terminal:
python common_exceptions.py
El programa comienza a ejecutarse, pero se detiene y muestra un ZeroDivisionError. Matemáticamente, la división por cero no está definida, y Python lanza esta excepción para indicar el problema.
Traceback (most recent call last):
File "/home/labex/project/common_exceptions.py", line 3, in <module>
result = numerator / denominator
ZeroDivisionError: division by zero
A continuación, vamos a activar un NameError. Esto sucede cuando intenta usar una variable que aún no ha sido definida. Reemplace el contenido de common_exceptions.py con lo siguiente:
print(undefined_variable)
Guarde el archivo y ejecútelo:
python common_exceptions.py
Obtendrá un NameError porque el intérprete no sabe a qué se refiere undefined_variable.
Traceback (most recent call last):
File "/home/labex/project/common_exceptions.py", line 1, in <module>
print(undefined_variable)
NameError: name 'undefined_variable' is not defined
Ahora, veamos un TypeError. Esto ocurre cuando intenta realizar una operación en un objeto de un tipo inapropiado. Reemplace el contenido de common_exceptions.py con este código:
print("Hello" + 5)
Guarde y ejecute el script:
python common_exceptions.py
Verá un TypeError. Python no le permite sumar (+) una cadena (string) y un entero (integer) directamente.
Traceback (most recent call last):
File "/home/labex/project/common_exceptions.py", line 1, in <module>
print("Hello" + 5)
TypeError: can only concatenate str (not "int") to str
Finalmente, demostraremos un IndexError. Esto sucede cuando intenta acceder a un elemento de una secuencia (como una lista) usando un índice que está fuera de rango. Reemplace el contenido de common_exceptions.py con lo siguiente:
my_list = [1, 2, 3]
print(my_list[5])
Guarde y ejecute el script:
python common_exceptions.py
Obtendrá un IndexError. La lista my_list tiene tres elementos, por lo que sus índices válidos son 0, 1 y 2. Acceder al índice 5 no es posible.
Traceback (most recent call last):
File "/home/labex/project/common_exceptions.py", line 2, in <module>
print(my_list[5])
IndexError: list index out of range
Comprender estas excepciones comunes es una parte clave para aprender a depurar código Python.