
Il est bien après la tombée de la nuit, le ventilateur de mon ordinateur portable souffle un peu trop fort pour le silence de la cuisine, et je fixe ce mur de texte rouge qui vient de s'afficher sur mon écran. Encore un crash. J'ai simplement appuyé sur 'Entrée' un peu trop vite, et tout mon petit script s'est effondré comme un château de cartes. On dirait que Python n'aime pas trop mes maladresses de fin de journée.
Avant d'aller plus loin, je préfère être honnête avec vous : ce journal contient quelques liens affiliés. Si vous cliquez dessus et achetez quelque chose, je reçois une petite commission sans que cela ne vous coûte un centime de plus. Je ne partage ici que les outils, comme ma Formation au langage Python [Mon point de départ], qui m'ont vraiment aidée à passer de 'je ne comprends rien' à 'ça marche presque'.
Le soir où mon budget a déclaré forfait
Depuis la fin de l'hiver dernier, j'essaie d'automatiser mon suivi de budget. C'est mon grand projet pour apprendre. Un soir de mars particulièrement froid, j'étais toute fière : j'avais enfin réussi à utiliser la fonction input python pour créer un programme interactif qui me demandait mes dépenses du jour. Je me sentais presque comme une développeuse, jusqu'à ce que mon doigt fourche. Au lieu de taper '12', j'ai tapé '12s'.
Boum. ValueError. Le programme s'est arrêté net. Toutes les données que j'avais saisies les dix minutes précédentes ? Envolées. C'est là que j'ai eu cette pensée : est-ce que les développeurs passent leur vie à construire des maisons minuscules et fragiles qui s'écroulent dès que quelqu'un éternue près du clavier ?

J'ai passé ce qui m'a semblé être une éternité — bien plus de quarante minutes, en fait — à fixer cette erreur. Je ne comprenais pas pourquoi Python était aussi susceptible. J'essayais de multiplier un mot par un nombre dans mon champ de saisie, et pour lui, c'était la fin du monde. C'est frustrant parce qu'on a l'impression que la machine nous punit pour une simple faute de frappe.
Le filet de sécurité : Try et Except
Après environ trois semaines de code erratique, j'ai fini par tomber sur le chapitre de la gestion d'exception. C'est là que j'ai découvert le duo magique : try et except. Pour moi, c'est devenu comme un filet de sécurité sous un trapéziste, ou mieux, comme un disjoncteur dans mon tableau électrique.
L'idée est simple, même si la mise en œuvre m'a demandé quelques essais (et beaucoup de thé froid). On dit à Python : "Essaie (try) de faire ça. Si jamais ça casse d'une certaine façon, ne panique pas, fais plutôt ceci (except)".
Quand j'ai tapé mon premier bloc try réussi, je me souviens encore de la texture un peu collante de la toile cirée de la table de cuisine sous mes poignets. Il faisait noir dehors, mais j'avais l'impression d'avoir allumé une lampe. Mon code ne mourait plus. Il me disait juste : "Oups, ce n'est pas un nombre, réessaie". C'est une petite victoire, mais quand on apprend seule après le boulot, c'est énorme.
L'importance de l'indentation et des erreurs précises
C'est là que le langage Python demande un peu de rigueur. Selon la norme PEP 8, l'indentation standard est de 4 espaces. Si on place mal son except par rapport au try, Python nous renvoie une autre erreur, juste pour nous rappeler qui est le patron. J'ai souvent dû relire mes notes pour être sûre que tout était bien aligné.

Au début, je faisais l'erreur de mettre un except tout court, sans rien préciser. Ça marchait, mais c'était un peu comme dire à un médecin "j'ai mal" sans dire où. J'ai appris qu'il valait mieux viser juste. Par exemple, si je divise mon budget par mon nombre d'économies et que celui-ci est à zéro, j'utilise ZeroDivisionError. Si c'est un problème de texte à la place d'un chiffre, c'est ValueError.
En apprenant à capturer ces erreurs spécifiques, j'ai arrêté de perdre patience. D'ailleurs, j'ai consigné mes astuces pour déboguer son code python sans perdre patience le soir, car le try except n'est qu'une partie de la solution.
Le piège du silence (l'avis des pros)
Un samedi après-midi pluvieux, alors que je discutais de mes progrès, j'ai appris une chose intéressante. Il paraît que dans certains domaines, comme pour les développeurs travaillant sur des systèmes critiques en temps réel, utiliser try except à tort et à travers est une très mauvaise idée.
Pourquoi ? Parce qu'ignorer systématiquement les erreurs peut masquer des pannes matérielles fatales. Dans mon petit script de budget, si je masque une erreur, au pire mes calculs sont faux. Mais dans un système qui gère des machines, on veut que le système s'arrête de façon sécurisée plutôt que de continuer à tourner en faisant n'importe quoi. Ça m'a fait réfléchir : mon code de débutante est une chose, mais la vraie programmation, c'est aussi savoir quand il faut laisser le programme s'arrêter.
C'est d'ailleurs pour ça que je garde dans un coin de ma tête la Formation Cisco : réseaux et systèmes [Pour plus tard]. Comprendre comment les systèmes réagissent aux pannes, c'est un tout autre niveau.

Ce que j'ai retenu de mes crashs
Aujourd'hui, j'utilise Python 3.12, et même si je fais encore des erreurs bêtes, je ne les redoute plus autant. Apprendre à utiliser try et except, c'est accepter que l'on va se tromper. C'est prévoir l'imprévisible, comme quand on prévoit une roue de secours dans le coffre de la voiture.
Si vous débutez comme moi, ne cherchez pas à écrire un code parfait du premier coup. Cherchez plutôt à écrire un code qui sait quoi faire quand il rencontre un problème. C'est beaucoup moins stressant de voir un message d'erreur poli que de voir son terminal se fermer brutalement sans explications.
Si vous voulez aussi transformer vos soirées en sessions de code (presque) productives, je vous conseille vraiment de jeter un œil à la Formation au langage Python [Mon point de départ]. C'est celle qui m'a appris à ne plus avoir peur du texte rouge. Et si jamais le Python vous semble trop aride, il y a toujours la JavaScript : formation 100 % pratique [Autre piste], même si faire deux choses à la fois est un défi que je ne suis pas encore prête à relever !
Allez, je ferme l'ordinateur pour ce soir. La table est enfin propre, et mon script de budget a survécu à mes tests de saisie les plus absurdes. C'est peut-être ça, le métier de développeuse : construire des petits filets de sécurité, un bloc à la fois.