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.