Certaines opérations en Python peuvent provoquer une erreur (= une exception) qui arrête immédiatement le programme. try/except permet d'attraper l'erreur pour décider quoi faire à la place.
Syntaxe
try:
# code qui peut planter
except NomDeLException:
# code exécuté SI l'erreur indiquée se produitZeroDivisionError → division par 0 (10 / 0)
ValueError → conversion impossible (int('abc'))
TypeError → mauvais type ('a' + 1)
KeyError → clé absente d'un dict (d['inconnu'])
IndexError → index hors limite (lst[99])
FileNotFoundError → fichier introuvabletry:
a = 10
b = 0
print(a / b)
except ZeroDivisionError:
print('Impossible de diviser par zéro !')Déroulement
1. Python exécute le code du try
2. À a/b, ZeroDivisionError survient
3. Python saute IMMÉDIATEMENT au except correspondant
4. Le print du try qui suivrait est ignorétry:
...
except ValueError:
... # si ValueError
except (TypeError, KeyError):
... # si TypeError OU KeyError
else:
... # exécuté UNIQUEMENT si pas d'erreur
finally:
... # TOUJOURS exécuté (erreur ou pas)Évite à tout prix le except: vide ou except Exception:. Tu attraperais toutes les erreurs, y compris des bugs, sans savoir lesquels. Précise toujours l'exception attendue.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →