Tester avec try-except pour l'invocation
Dans cette étape, vous allez apprendre à utiliser les blocs try-except
pour gérer les erreurs potentielles lors de l'appel d'objets en Python. Cela est particulièrement utile lorsque vous n'êtes pas sûr qu'un objet est appelable ou si son appel peut lever une exception.
Commençons par un exemple où nous essayons d'appeler un objet qui peut ne pas être appelable :
def my_function():
return "Hello from my_function!"
x = 10
objects_to_test = [my_function, x]
for obj in objects_to_test:
try:
result = obj()
print(f"Object is callable, result: {result}")
except TypeError as e:
print(f"Object is not callable: {e}")
Ajoutez ce code à votre fichier callable_example.py
, en remplaçant le contenu précédent.
Maintenant, exécutez le script en utilisant la commande suivante dans le terminal :
python callable_example.py
Vous devriez voir la sortie suivante :
Object is callable, result: Hello from my_function!
Object is not callable: 'int' object is not callable
Dans cet exemple, nous parcourons une liste d'objets et essayons d'appeler chacun d'eux. Le bloc try
tente d'appeler l'objet. Si l'objet est appelable et que l'appel réussit, le résultat est affiché. Si l'objet n'est pas appelable, une TypeError
est levée et le bloc except
capture l'exception et affiche un message approprié.
Maintenant, considérons un cas où l'objet est appelable, mais où son appel peut lever un autre type d'exception :
def my_function(a, b):
return a / b
try:
result = my_function(10, 0)
print(f"Result: {result}")
except ZeroDivisionError as e:
print(f"Error: {e}")
except TypeError as e:
print(f"Error: {e}")
Ajoutez ce code à votre fichier callable_example.py
, en remplaçant le contenu précédent.
Exécutez le script à nouveau :
python callable_example.py
Vous devriez voir la sortie suivante :
Error: division by zero
Dans ce cas, my_function
est appelable, mais l'appeler avec b = 0
lève une ZeroDivisionError
. Le bloc try-except
capture cette exception spécifique et la gère de manière élégante.
L'utilisation de blocs try-except
vous permet d'écrire un code plus robuste et fiable en anticipant et en gérant les erreurs potentielles qui peuvent survenir lors de l'appel d'objets.