Prueba el paso de argumentos con try-except
En este paso, aprenderás cómo utilizar bloques try-except para manejar posibles errores al pasar argumentos a una función. Esto es especialmente importante cuando se trabaja con entrada del usuario o datos externos, donde el tipo de dato o el formato pueden no ser los que la función espera.
Modifiquemos el script my_function.py para incluir el manejo de errores utilizando try-except. Intentaremos llamar a la función add_numbers con argumentos inválidos y capturar el TypeError resultante.
Abre el archivo my_function.py en tu directorio ~/project utilizando el editor VS Code y modifícalo de la siguiente manera:
## filename: ~/project/my_function.py
import inspect
def add_numbers(x: int, y: int = 10) -> int:
"""This function adds two numbers and returns the result."""
return x + y
try:
result = add_numbers("hello", 5)
print(f"Result: {result}")
except TypeError as e:
print(f"Error: {e}")
try:
result = add_numbers(5, "world")
print(f"Result: {result}")
except TypeError as e:
print(f"Error: {e}")
try:
result = add_numbers(5, 5)
print(f"Result: {result}")
except TypeError as e:
print(f"Error: {e}")
En este script modificado:
- Encerramos las llamadas a
add_numbers en bloques try-except.
- Intentamos llamar a
add_numbers con una cadena como primer argumento y un entero como segundo argumento.
- Intentamos llamar a
add_numbers con un entero como primer argumento y una cadena como segundo argumento.
- Intentamos llamar a
add_numbers con dos enteros como argumentos.
- Si se produce un
TypeError (lo que sucederá cuando pasemos una cadena en lugar de un entero), capturamos la excepción y mostramos un mensaje de error.
- Si no se produce ningún
TypeError, mostramos el resultado de la llamada a la función.
Ahora, ejecuta el script utilizando el comando python:
python ~/project/my_function.py
Deberías ver la siguiente salida:
Error: unsupported operand type(s) for +: 'str' and 'int'
Error: unsupported operand type(s) for +: 'int' and 'str'
Result: 10
Esta salida demuestra cómo se pueden utilizar los bloques try-except para manejar de forma elegante los errores que se producen al pasar argumentos inválidos a una función. Las dos primeras llamadas a add_numbers dan lugar a excepciones TypeError, que son capturadas y manejadas por los bloques except. La tercera llamada a add_numbers con dos enteros se ejecuta correctamente y se muestra el resultado.
Utilizar bloques try-except es una buena práctica para escribir código robusto y confiable. Te permite anticipar posibles errores y manejarlos de una manera que evite que tu programa se bloquee.