Gestion des exceptions – Les mots clés try/except/else en Python
Dans ce tutoriel, vous allez apprendre à gérer les exceptions dans votre programme Python à l’aide des instructions try, except et else. Cela vous aidera à écrire du code propre, lisible et efficace.

Quelles sont les exceptions en Python?
Une exception est un événement qui se produit pendant l’exécution d’un programme et qui perturbe le flux normal des instructions du programme. En général, lorsqu’un script Python rencontre une situation qu’il ne peut pas gérer, il déclenche une exception. Une exception est un objet Python qui représente une erreur.
Gérer les exceptions en python
En Python, les exceptions peuvent être gérées à l’aide de l’instruction « try ».
Une opération critique pouvant générer une exception est placée dans le bloc « try » et le code qui gère cette exception est écrit dans le bloc « except ».
Exemple 1:
Cet exemple ouvre et écrit son contenu dans un fichier, et quitte car il n’y a aucun problème.
try: file = open("file.txt", "w") file.write("Hello World!") except IOError: print "Erreur: impossible de trouver le fichier" else: print "Contenu écrit dans le fichier avec succès" file.close()
Cela produit le résultat suivant
Contenu écrit dans le fichier avec succès
Exemple 2:
Dans cet exemple on va essayer d’ouvrir un fichier sur lequel on n’a pas l’autorisation d’écrire, donc il déclenche une exception.
try: file = open("file.txt", "r") file.write("Hello World!") except IOError: print "Erreur: impossible d’ouvrir le fichier" else: print "Contenu écrit dans le fichier avec succès" file.close()
Cela produit le résultat suivant
Erreur: impossible d’ouvrir le fichier
La clause try/finally
Vous pouvez ajouter le bloc finally: avec le bloc try:. Le bloc finally est un endroit où placer le code qui doit être exécuté, que ce soit le bloc try crée une exception ou non. En revanche, vous ne pouvez pas utiliser la clause else avec la clause finale.
Exemple 3:
try: file = open("file.txt", "w") file.write("Hello World!") finally: print "Erreur: impossible de trouver le fichier"
Si vous n’êtes pas autorisé à ouvrir le fichier en mode écriture, cela produira le résultat suivant
Erreur: impossible de trouver le fichier
Lever une exception
Vous pouvez générer des exceptions de plusieurs manières à l’aide de l’instruction raise.
Exemple 4:
if age > 0: #Faire quelque chose. else: raise AssertionError("Valeur inattendue!", age)
Exceptions définies par l’utilisateur
Les programmeurs peuvent définir leurs propres exceptions en créant une nouvelle classe. Les exceptions doivent être héritées de la classe Exception, directement ou indirectement. Bien que cela ne soit pas obligatoire, la plupart des exceptions se terminent par «Error», ce qui revient à nommer les exceptions standard en python. Par exemple:
class MultiplicationError(Exception): # Constructeur def __init__(self, val): self.val = val # __str__ pour afficher la valeur def __str__(self): return(repr(self.val)) try: raise(MultiplicationError(1*0)) # La valeur de l'exception est enregistrée dans error except MultiplicationError as error: print('Une nouvelle exception s\'est produite: ',error.val)
Cela produit le résultat suivant
Une nouvelle exception s'est produite: 0