Gérer les erreurs avec try / except
Empêche ton programme de planter en attrapant les erreurs.
⏱ 10 minutes
📂 intermediaire
#intermediaire
#erreurs
#exceptions
try / except : gérer les erreurs proprement
Au lieu que ton programme plante, tu peux attraper les erreurs et décider quoi faire.
La structure de base
try:
age = int(input("Ton âge ? "))
print(f"Tu as {age} ans")
except ValueError:
print("Ce n'est pas un nombre !")
Si l'utilisateur tape "chien", on ne plante pas — on affiche un message.
Attraper plusieurs erreurs
try:
x = int(input("Un nombre : "))
print(10 / x)
except ValueError:
print("Ce n'est pas un nombre.")
except ZeroDivisionError:
print("On ne divise pas par zéro !")
Le bloc else (si tout s'est bien passé)
try:
x = int(input("Un nombre : "))
except ValueError:
print("Mauvais nombre")
else:
print(f"Bravo, x vaut {x}")
Le bloc finally (toujours exécuté)
Utile pour fermer un fichier, libérer une ressource… même en cas d'erreur.
try:
f = open("data.txt")
# ...
except FileNotFoundError:
print("Fichier absent")
finally:
print("Ce message s'affiche toujours")
Récupérer le message d'erreur
try:
int("salut")
except ValueError as e:
print(f"Erreur attrapée : {e}")
# Erreur attrapée : invalid literal for int() with base 10: 'salut'
Lever ses propres erreurs avec raise
def diviser(a, b):
if b == 0:
raise ValueError("On ne divise pas par zéro, gros malin")
return a / b
try:
diviser(10, 0)
except ValueError as e:
print(e)
⚠ N'attrape pas tout sans réfléchir
try:
...
except: # ❌ attrape même les Ctrl+C !
pass
try:
...
except Exception: # ✅ acceptable
...
💡 La règle : attrape les erreurs précises que tu sais gérer. Laisse remonter les autres : elles indiquent un vrai bug.
🧪 Quiz de validation
Réponds à toutes les questions. Il faut 70% de bonnes réponses pour valider le tuto !
🔒 Tu dois être connecté pour passer le quiz.