cybercursus

Gérer les erreurs : try, except

12 min · Intermédiaire · 7 août 2026

Sommaire
  1. Une erreur qui arrête tout, par défaut
  2. Intercepter une erreur précise
  3. Plusieurs types d’erreurs, plusieurs except
  4. À toi de jouer

Une erreur qui arrête tout, par défaut

python
resultat = 10 / 0
# ZeroDivisionError: division by zero
# Le programme s'arrete ici, la suite ne s'execute jamais

Intercepter une erreur précise

python
try:
  resultat = 10 / 0
except ZeroDivisionError:
  print("Division par zero evitee")
  resultat = None

print("Le programme continue normalement")

Le bloc try contient l’instruction risquée. Si l’erreur indiquée après except survient, Python exécute ce bloc à la place de laisser le programme s’arrêter, puis continue normalement après.

Attention

Cibler except ZeroDivisionError plutôt qu’un except générique évite de masquer une erreur totalement différente (une faute de frappe dans un nom de variable, par exemple), qui devrait au contraire apparaître clairement plutôt que d’être avalée silencieusement.

Plusieurs types d’erreurs, plusieurs except

python
valeurs = ["10", "0", "abc"]

for valeur in valeurs:
  try:
      print(100 / int(valeur))
  except ZeroDivisionError:
      print("Impossible de diviser par zero")
  except ValueError:
      print(f"'{valeur}' n'est pas un nombre valide")

À toi de jouer

Écris une fonction diviser_en_securite(a, b) qui renvoie a / b, ou None si b vaut 0, sans jamais laisser le programme planter.

python
def diviser_en_securite(a, b):
  # Renvoie a / b, ou None si b vaut 0
  pass
Que se passe-t-il si une erreur survient dans un bloc try, sans except correspondant ?
Pourquoi cibler un type d'erreur précis (comme ZeroDivisionError) plutôt qu'un except générique qui capture tout ?

Pour aller plus loin

Commentaires

Recherche