Intercepter des exceptions
Avant d’écrire vos propres exceptions personnalisées, assurons-nous que vous maîtrisez les bases 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 indice ind, et inverse l’élément de la liste à cet indice. Par exemple, invert_at_index([5,6,7], 0) renvoie 1/5, soit 0.2.
Votre objectif est d’implémenter une gestion d’erreurs pour lever 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 intercepter et traiter deux exceptions comme suit :
tryexécuter le code tel quel, en renvoyant1/x[ind].- si un
ZeroDivisionErrorse produit, affichez"Cannot divide by zero!", - si un
IndexErrorse produit, affichez"Index out of range!"
Vous saurez que c’est correct si le code s’exécute sans erreurs 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))