Rattraper les exceptions
Avant de commencer à écrire vos propres exceptions personnalisées, assurez-vous que vous maîtrisez les principes fondamentaux de la gestion des exceptions.
Dans cet exercice, on vous donne une fonction invert_at_index(x, ind)
qui prend deux arguments, une liste x
et un index ind
, et qui inverse l'élément de la liste à cet index. Par exemple, invert_at_index([5,6,7], 0)
renvoie à 1/5
ou 0.2
.
Votre objectif est de mettre en place un système de gestion des erreurs afin de soulever des exceptions personnalisées en fonction du type d'erreur qui se produit.
Cet exercice fait partie du cours
Introduction à la programmation orientée objet en Python
Instructions
Utilisez un modèle try
- except
- except
(avec deux blocs except
) à l'intérieur de la fonction pour attraper et gérer deux exceptions comme suit :
try
en exécutant le code tel quel, en renvoyant1/x[ind]
.- si
ZeroDivisionError
se produit, imprimez"Cannot divide by zero!"
, - Si
IndexError
se produit, imprimez"Index out of range!"
Vous savez que vous avez réussi si le code s'exécute sans erreur et que la sortie dans la console est:
0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Modify the function to catch exceptions
def invert_at_index(x, ind):
____:
return 1/x[ind]
_____:
print("____")
____:
print("____")
a_list = [5,6,0,7]
# Works okay
print(invert_at_index(a_list, 1))
# Potential ZeroDivisionError
print(invert_at_index(a_list, 2))
# Potential IndexError
print(invert_at_index(a_list, 5))