Try y except en Python: capturando errores

Durante la ejecución de un programa pueden aparecer errores o excepciones. Cuando eso sucede, el programa se detendrá como consecuencia. Para evitar esta situación, existen las sentencias try y except en Python. Las mismas nos permitirán «atrapar» excepciones y como resultado, responder sin que el programa falle. Por eso, veamos cómo utilizar estas herramientas.

Try y except en Python

Para empezar, consideremos el siguiente caso. Importaremos el módulo math e intentaremos utilizar la función sqrt para calcular la raíz cuadrada de un número que le pasemos como argumento. Podemos ejecutar el siguiente código desde el archivo llamado raiz.py y ver el resultado en la Fig. 1:

import math

def RaizCuadrada(numero):
    return math.sqrt(numero)

print(RaizCuadrada(4))
print(RaizCuadrada(13))
print(RaizCuadrada(100))
print(RaizCuadrada(-1))
print(RaizCuadrada(25))
Ejemplo sin utilizar try y except en Python
FIgura 1 – Ejemplo sin utilizar try y except en Python

Como es de esperarse, apareció un error porque intentamos calcular la raíz cuadrada de un número negativo. Es importante prestar atención al tipo de error (en este caso ValueError) para luego poder capturarlo.

Capturando excepciones

Para evitar que el programa se detenga cuando encuentra una excepción debemos colocar el bloque de código donde se podría generar la misma a continuación de la sentencia try. El programa intentará (try) ejecutar dicho código y si no puede hacerlo,  «atrapará» el error y responderá como lo indiquemos a continuación de la(s) sentencia(s) except.

Modifiquemos a continuación el programa anterior de la siguiente manera:

import math

def RaizCuadrada(numero):
try:
    return math.sqrt(numero)
except ValueError:
    return 'Error: No se puede calcular la raíz cuadrada de ' + str(numero)

print(RaizCuadrada(4))
print(RaizCuadrada(13))
print(RaizCuadrada(100))
print(RaizCuadrada(-1))
print(RaizCuadrada(25))

Finalmente, veamos el resultado en la Fig. 2:

Uso de try y except en Python
Figura 2 – Uso de try y except en Python

En conclusión, vemos que el error es tratado apropiadamente y que afortunadamente no interfiere en el flujo normal de la función.

Espero que este post les haya resultado útil y también interesante. ¡Nos encontramos en el próximo!