Перейти к содержимому

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