CommencerCommencer gratuitement

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

Afficher le cours

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 renvoyant 1/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))
Modifier et exécuter le code