Stratégie try except pour les débutants en Python – Débogage facile grâce à la gestion des exceptions !

Tux stops at Exception light

Si vous venez juste de commencer à apprendre Python, vous serez probablement déconcerté à la première rencontre avec la syntaxe try except. Vous pourriez vous demander : "Quel nom de classe dois-je mémoriser ?", "Quand devrais-je utiliser ça ?". Dans cet article, nous expliquerons étape par étape le concept clé de la gestion des exceptions en Python et la stratégie try except pour les débutants.


Pourquoi la gestion des exceptions en Python est-elle importante ?

Lorsque vous exécutez votre code, il ne fonctionne pas toujours comme prévu. L'utilisateur peut faire une erreur de saisie, un fichier peut être manquant, la connexion réseau peut être interrompue... Si le programme s'arrête à ce moment-là, l'expérience utilisateur sera affectée.

C'est dans ces situations que la gestion des exceptions (try except) en Python s'avère nécessaire.

L'objectif de la gestion des exceptions est simple : assurer que le programme continue à fonctionner en toute sécurité même en cas d'erreur.


À quoi ressemble un try except ?

try:
    # Code pouvant poser problème
except exemple_classe as e:
    # Actions à entreprendre en cas de problème

Exemple :

try:
    result = 10 / 0
except ZeroDivisionError as e:
    print("On ne peut pas diviser par 0:", e)

Ici, l'essentiel est la ZeroDivisionError, qui est une classe d'exception. Cette classe indique de quel type d'erreur il s'agit.


Qu'est-ce qu'une classe d'exception, et dois-je la mémoriser ?

De nombreux débutants en Python se posent cette question :

"Dois-je mémoriser toutes ces classes d'exception ?"

La réponse est non !

Les développeurs expérimentés ne mémorisent pas toutes les classes d'exception. Ils se familiarisent simplement avec quelques classes d'exception fréquemment utilisées, et utilisent les messages d'erreur pour se guider lorsque d'autres problèmes surviennent.

Exemple :

FileNotFoundError: [Errno 2] Aucun fichier ou répertoire de ce nom: 'none.txt'

Ensuite, vous pouvez écrire :

except FileNotFoundError:

Voilà comment faire.


Top 7 des classes d'exception en Python les plus courantes

Classe d'exception Quand survient-elle ?
ValueError Quand la valeur est incorrecte
TypeError Quand le type ne correspond pas
IndexError Quand on sort des limites d'une liste
KeyError Quand la clé n'est pas présente dans le dictionnaire
ZeroDivisionError Quand on divise par 0
FileNotFoundError Quand le fichier est manquant
Exception Parent de tous les erreurs générales

Avec ces connaissances, vous serez en mesure de gérer la plupart des situations de gestion des exceptions en Python.


Comment se familiariser avec try except en tant que débutant !

  1. Si vous ne savez pas, couvrez avec Exception.
try:
    dangerous_code()
except Exception as e:
    print("Un problème est survenu:", e)
  1. Examinez le message d'erreur pour affiner la classe d'exception requise.

  2. Faites confiance à l'auto-complétion de votre IDE (éditeur de code). Elle recommande la plupart du temps les bonnes classes.

  3. Répéter les mêmes problèmes vous permettra d'apprendre de manière naturelle.


La gestion des exceptions est l'ami du débogage

La gestion des exceptions en Python n'est pas seulement un outil pour empêcher les erreurs, c'est un puissant outil de débogage pour suivre et identifier les causes des erreurs.

Les messages d'exception apparaissent généralement comme ceci :

Traceback (dernier appel le plus récent en premier):
  Fichier "main.py", ligne 2, dans <module>
    x = 10 / 0
ZeroDivisionError: division par zéro

Ainsi, vous pouvez facilement repérer le nom du fichier, le numéro de la ligne et le type d'erreur. Par conséquent, une bonne utilisation des exceptions facilite également le débogage.


Classe d'exception supplémentaire – StopIteration

StopIteration est l'exception qui se produit lorsque l'objet itérable n'a plus d'éléments à renvoyer. Dans une boucle for standard, elle est gérée automatiquement, donc vous n'avez pas à vous en soucier, mais lors de l'utilisation de la fonction next(), vous devez souvent la gérer manuellement.

Exemple :

it = iter([1, 2])
print(next(it))  # 1
print(next(it))  # 2
print(next(it))  # StopIteration se produit

Ou dans un code comme le suivant :

try:
    category = next(cat for cat in all_categories if cat.slug == category_slug)
except StopIteration:
    pass  # Ne fait rien

Dans ce cas, cela sert à ignorer simplement le cas où aucune catégorie avec ce slug n'est trouvée, pour éviter d'interrompre le flux du code.


Conclusion – La gestion des exceptions en Python, au départ difficile, devient vite familière

Il n'est pas nécessaire de mémoriser toutes les classes d'exception dès le début, ni de mettre en place une gestion des exceptions parfaite. Au lieu de cela, prenez l'habitude d'identifier les problèmes, de les envelopper dans try except et d'analyser les messages d'erreur.

La gestion des exceptions en Python rend votre programme plus robuste et facilite la détection des problèmes ultérieurement. Pour les débutants, la capacité de survie en situation réelle est plus importante que la perfection. Le try except sera votre première étape.


Dans le prochain article, nous aborderons également la gestion des exceptions élargie avec la structure try except else finally ! 😊