Python try except pour une gestion contrôlée des erreurs
Python try except gère les erreurs d’exécution afin que le programme puisse continuer avec une valeur de repli. Utilisez-le quand l’analyse d’une entrée utilisateur ou la lecture d’un fichier peut échouer, mais que le reste du travail doit continuer. La clé est d’entourer uniquement les lignes à risque, d’attraper l’exception attendue et de fournir une valeur sûre.
Exemple Python Try Except Pour La Gestion D’Erreurs
Sortie :
La sortie apparaîtra ici...
Sortie :
0
Comment Fonctionne Cet Exemple
- Le bloc
trytente de convertir le texte en entier. - Quand
int()échoue, le blocexcept ValueErrorassigne une valeur de repli. - Le
prints’exécute après le bloc, donc le script produit toujours un nombre utilisable. - La sortie montre le chemin de repli, ce qui prouve que l’erreur a été gérée plutôt que de faire planter le programme.
Erreurs courantes avec Python try except
Erreur 1 : Tout attraper avec un except nu.
try:
total = int(text)
except:
total = 0
try:
total = int(text)
except ValueError:
total = 0
Pourquoi ça arrive : un except nu attrape des erreurs qui arrêtent le système comme KeyboardInterrupt et SystemExit, rendant les programmes plus difficiles à arrêter et à déboguer. Préférez l’exception spécifique attendue.
Erreur 2 : Mettre trop de code dans try et masquer des bugs non liés.
total = 10
try:
count = int(text)
ratio = total / count
except Exception:
ratio = 0
total = 10
try:
count = int(text)
except ValueError:
ratio = 0
else:
ratio = total / count
Pourquoi ça arrive : des gestionnaires trop larges peuvent masquer des erreurs provenant de lignes qui devraient échouer clairement. Le bloc else ne s’exécute que lorsqu’aucune exception ne survient, donc les bugs inattendus ne sont pas avalés.
Erreur 3 : Ordonner les blocs except du plus large au plus spécifique.
try:
count = int(text)
except Exception:
count = 0
except ValueError:
count = 0
try:
count = int(text)
except ValueError:
count = 0
except Exception:
count = 0
Pourquoi ça arrive : Python choisit le premier gestionnaire correspondant, donc un except large placé en premier rend le spécifique inatteignable.
Considérations De Performance
Un bloc try sans exception est efficace, mais lever et attraper des exceptions est relativement coûteux. Si les échecs sont attendus dans le flux normal, une simple pré-validation (comme la validation d’entrée) peut être plus rapide et plus claire. Quand les échecs sont réellement exceptionnels, try et except gardent le chemin heureux lisible sans coût de performance significatif.
Quand utiliser try except
- Utilisez-le quand une opération peut échouer et que vous avez une valeur de repli sûre (analyse de texte, lecture de fichier ou appel d’API).
- Utilisez-le pour continuer un traitement par lots en sautant les éléments erronés tout en journalisant l’erreur gérée.
- Gardez le bloc
tryserré pour ne protéger que la ligne risquée et laisser les autres bugs remonter. - Évitez-le quand l’échec est le chemin normal et qu’une condition simple est plus économique et claire.
- Évitez d’attraper
BaseExceptionou unExceptiongénérique sauf si vous relancez ou journalisez avec intention.