CommencerCommencer gratuitement

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

Afficher le cours

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 :

  • try exécuter le code tel quel, en renvoyant 1/x[ind].
  • si un ZeroDivisionError se produit, affichez "Cannot divide by zero!",
  • si un IndexError se 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))
Modifier et exécuter le code