Python : Ne perds plus jamais un bug avec ces techniques avancées
HexaPython
0:00 / 0:00
Python : Ne perds plus jamais un bug avec ces techniques avancées
131 просмотр · 2 нед. назад
HexaPython
491 подписчик
131 просмотр · 2 нед. назад
⚡ Un except qui attrape tout et qui continue comme si de rien n'était, c'est un bug que tu ne verras jamais. Épisode 7 de la SAISON 2 d'HexaPython : les erreurs, niveau intermédiaire.
ExceptionGroup et except* (Python 3.11), add_note pour le contexte, raise from pour garder la cause, tes propres exceptions, un décorateur de tentatives, traceback, un journal avec rotation, des contextes qui décident, et un filet de dernier recours avec sys.excepthook. Mini-projet : une famille d'erreurs métier pour l'application météo… qu'on casse exprès, sans rien perdre.
🚀 RELÈVE LE DÉFI DE LA VIDÉO !
1. Transforme une boucle qui s'arrête à la première erreur en ExceptionGroup, et attrape-le avec except*
2. Ajoute des add_note à chaque étage traversé (valeur en cours, fichier, identifiant)
3. Écris ton décorateur de tentatives avec functools.wraps et applique-le à tes appels réseau
4. Configure un journal avec rotation
5. Pose sys.excepthook et threading.excepthook
6. Passe les avertissements en erreurs dans tes tests
⭐ Le test qui compte : lance ton programme sans console, provoque un plantage et vérifie que la trace complète est dans ton fichier de log.
👉 Montre-moi ton décorateur en commentaire !
━━━━━━━━━━━━━━━━━━━━
⏱ CHAPITRES
━━━━━━━━━━━━━━━━━━━━
00:00 Introduction
01:12 Au programme de l'épisode
02:04 Ce qui reste après les bases
03:00 Plusieurs erreurs à la fois : ExceptionGroup
03:57 Attraper dans un groupe : except*
05:20 Le contexte manquant : add_note
06:14 raise from : garder la cause
07:25 Tes propres exceptions
08:32 Un décorateur de tentatives (retry)
09:49 Capturer une trace : traceback
10:45 Un journal de production avec rotation
11:42 Des contextes qui décident (__exit__, ExitStack)
13:20 Le filet de dernier recours : sys.excepthook
14:18 Où gérer une erreur
15:10 Les pièges classiques
16:28 L'aide-mémoire à capturer
17:39 Le stockage, version robuste
18:33 Coût des exceptions et warnings
19:39 Mini-projet : les erreurs métier
20:33 Mini-projet : on le casse
21:27 Ton défi de la semaine
22:24 Résumé et épisode 8
🛠️ LES LIENS UTILES POUR CETTE VIDÉO :
👉 Erreurs et exceptions (doc officielle) : https://docs.python.org/fr/3/tutorial...
👉 ExceptionGroup et except* (exceptions intégrées) : https://docs.python.org/fr/3/library/...
👉 Module traceback : https://docs.python.org/fr/3/library/...
👉 Journalisation et RotatingFileHandler : https://docs.python.org/fr/3/library/...
👉 contextlib et ExitStack : https://docs.python.org/fr/3/library/...
💻 Besoin d'un hébergement pour vos projets Python, sites web ou applications ? Bénéficiez de 20 % de réduction avec mon lien Hostinger et soutenez la chaîne sans frais supplémentaires.
🚀 Hostinger (-20 % sur votre premier plan) :
https://www.hostinger.com/fr?REFERRAL...
❤️ Merci à tous ceux qui utilisent ce lien, cela m'aide à continuer à produire des tutoriels Python gratuits et de qualité.
---
💡 CE QUE TU AS APPRIS AUJOURD'HUI (AIDE-MÉMOIRE) :
• Grouper : sur un traitement par lot, accumule les échecs et lève un ExceptionGroup pour remonter le tableau complet, pas seulement le premier problème.
• Découper : except* exécute tous les blocs qui correspondent, et ce que personne n'attrape continue de remonter.
• Enrichir : err.add_note() attache le contexte de chaque étage sans remplacer l'exception ni perdre son type.
• raise ... from err garde la cause visible ; from None la masque volontairement.
• Outiller : la logique de tentatives s'écrit une fois, dans un décorateur avec functools.wraps.
• Un _exit_ qui renvoie True absorbe l'erreur ; ExitStack ferme tout, quoi qu'il arrive.
• Tracer : un journal avec rotation garde une taille bornée ; sys.excepthook et threading.excepthook rattrapent tout le reste.
• En bas on lève, au milieu on traduit, en haut on décide — et un seul endroit journalise.
⚠️ Un raise dans un finally peut faire disparaître la vraie erreur 👀
---
🎓 À PROPOS DE HEXAPYTHON :
HexaPython est ta ressource francophone pour maîtriser le développement avec Python. Reconversion, automatisation de tâches, ou simple curiosité : des formats clairs, dynamiques et sans jargon inutile.
Prochain épisode : les tests avec pytest.
Active la cloche 🔔 pour ne pas rater la suite !
Un pouce bleu 👍, un commentaire et un partage aident énormément la chaîne 🙏
#Python #PythonIntermediaire #Exceptions #GestionDesErreurs #TryExcept #ExceptionGroup #Logging #HexaPython #Programmation #Tutoriel