APRENDE PYTHON YA! Libro: Los pilares de python. #17 — Capturar errores



”La felicidad no es la ausencia de problemas; es la habilidad para tratar con ellos”.-Steve Maraboli

Hoy hablaremos sobre como capturar errores es Python. Esto es sobretodo útil cuando trabajamos con usuarios. Por ejemplo, imaginemos que preguntamos a un usuario que introduzca dos números para posteriormente sumarlos. Para eso hacemos esta simple función:

def sumaf(a,b): 
return(a+b)
print (sumaf("dog",5)# Error
print ("hello")

Nuestro usuario amablemente ha intentado sumar “dog” con 5. Este código dará un error, ya que si recordamos hace unos capítulos cuando hablábamos respecto a los tipos de dato “string”, decíamos que no podían sumarse una palabra con un número lo cual tiene sentido.

Por lo tanto, el código de arriba nos lanzará un error y el interprete no seguirá recorriendo el resto de líneas. Para solucionar y controlar este tipo de errores podemos utilizar lo que se conoce como manejo de errores con los comandos try y except.

def sumaf(a,b):
try:
return a+b
except:
print("There's a error" )
print (sumaf("dog",5))
print("hello")

Ahora ese error se ha “capturado”, y el interprete seguirá leyendo el código hasta llegar a la siguiente línea donde mostrará por pantalla “hello”.

Además, si queremos darle feedback al usuario podríamos “capturar” dicha excepción utilizando el comando de Exception y guardándolo en e :

def sumaf(a,b):
try:
return a+b
except Exception as e:
print("There's a error" )
print (sumaf("dog",5))
print("hello")

Hay otro término que nos puede ayudar a con nuestra gestión de errores y es “finally”, el cual se ejecutará al final del todo sin importar lo que pase. Dicho parámetro es útil cuando tenemos que cerrar un archivo o la base de datos.

def sumaf(a,b):
try:
return a+b
except Exception as e:
print("There's a error" )
finally:
print("Thank you")
print (sumaf("dog",5))
print("hello")

Para terminar, hay que decir que podemos capturar los errores si además conocemos su tipo de error en lugar Exception.

def sumaf(a,b):
try:
return a+b
except TypeError:
print("There's a error" )
finally:
print("Thank you")
print (sumaf("dog",5))
print("hello")

Para saber los posibles tipos de errores tan sólo tenemos que ver el mensaje que nos devuelve por pantalla la terminal:

Hasta aquí hemos visto lo más importante del manejo de errores, el cual está bien conocerlo y sirve sobretodo cuando estamos haciendo programas más complejos.

— — — — — — — — — — — — — — The End — — — — — — — — — — — — —

Si te gusta esta pequeña y gratuita revista nos puedes ayudar simplemente compartiéndola o suscribiéndose a la publicación. Me llamo Rubén Ruiz y trabajo en Inteligencia Artificial en la industria financiera y como proyecto personal llevo esta pequeña revista donde experimentamos con Inteligencia Artificial … hasta que explota el ordenador :) Puedes seguirme en:

Instagram (Vida personal, es divertido) => @rubenruiz_t

Youtube (Canal sobre IA, intento que sea divertido )=> Rubén Ruiz A.I

Github (Donde subo mi código, esto ya no es tan divertido) => RubenRuizT

Source: Deep Learning on Medium