Gérez les erreurs, les fichiers et lisez du code existant

Vous avez maintenant découvert plusieurs notions fondamentales : variables, conditions, boucles, fonctions, classes, objets, attributs et méthodes. Ces notions vous aident à comprendre la logique d’un programme.

Mais, dans un vrai projet, tout ne se passe pas toujours comme prévu. Un fichier peut manquer. Une donnée peut être incorrecte. Une commande peut afficher un message d’erreur. Un résultat peut ne pas correspondre à ce que vous attendiez.

Dans ce dernier chapitre, vous allez apprendre à adopter une démarche de lecture et de vérification. L’objectif n’est pas de corriger tous les problèmes possibles, mais de savoir observer ce que le programme vous dit, repérer les indices importants et avancer avec méthode.

Comprenez ce qu’est une erreur

Une erreur apparaît quand le programme rencontre une situation qu’il ne peut pas gérer correctement.

Cela ne signifie pas forcément que tout le programme est mauvais. Une erreur est souvent un signal : elle indique qu’une information manque, qu’une instruction est incorrecte, ou qu’une situation n’a pas été prévue.

Par exemple, imaginez un programme qui doit lire une liste de produits dans un fichier. Si le fichier n’existe pas, le programme ne peut pas continuer normalement.

En pseudo-code, on pourrait représenter cette situation ainsi :

SI fichier_produits existe
    lire fichier_produits
SINON
    afficher "Fichier produits introuvable"
FIN SI

Ici, le programme vérifie d’abord si le fichier existe. Si oui, il le lit. Sinon, il affiche un message clair.

Vous retrouvez une notion déjà vue : la conditionSI / SINON. Elle permet ici de prévoir deux chemins possibles : le chemin normal et le chemin en cas de problème.

Quand vous débutez, prenez le temps de lire les messages d’erreur. Même s’ils semblent impressionnants, ils contiennent souvent des indices utiles :

  • le nom du fichier concerné ;

  • la ligne ou la zone du programme où le problème apparaît ;

  • le type de problème rencontré ;

  • parfois une explication ou une piste de correction.

Vous n’avez pas besoin de tout comprendre immédiatement. Commencez par repérer les mots que vous reconnaissez : nom de fichier, nom de variable, nom de fonction, message affiché, valeur attendue.

Prévoyez une gestion d’erreur simple

Gérer une erreur, c’est prévoir ce que le programme doit faire quand une situation anormale se produit.

Dans un premier temps, vous pouvez raisonner avec trois étapes simples :

essayer une action
si l’action fonctionne
    continuer le programme
sinon
    afficher un message compréhensible

Par exemple, si le programme doit charger des produits :

ESSAYER
    produits = lire fichier_produits
    afficher "Produits chargés"
SI ERREUR
    afficher "Impossible de charger les produits"
FIN ESSAYER

Ce pseudo-code ne correspond pas à la syntaxe d’un langage précis. Il sert seulement à montrer le raisonnement : le programme tente une action, puis prévoit quoi faire si cette action échoue.

Le message affiché doit aider à comprendre le problème. Comparez ces deux messages :

afficher "Erreur"
afficher "Impossible de charger les produits"

Le deuxième message est plus utile, car il indique quelle action a échoué.

Dans un code existant, vous pourrez donc chercher les endroits où le programme anticipe un problème : fichier manquant, donnée invalide, stock insuffisant, résultat vide, commande impossible, etc.

Manipulez un fichier de données

Un programme back-end lit souvent des informations depuis un fichier ou enregistre des informations dans un fichier.

Un fichier de données peut contenir, par exemple :

  • une liste de produits ;

  • des prix ;

  • des quantités ;

  • des paramètres ;

  • des résultats à conserver.

Lire un fichier signifie récupérer son contenu pour l’utiliser dans le programme.

produits = lire fichier_produits

Écrire dans un fichier signifie enregistrer une information pour la conserver.

écrire produits_mis_à_jour dans fichier_produits

Reprenons l’exemple du stock. Le programme peut lire une liste de produits, modifier un stock, puis enregistrer la nouvelle version des données.

produits = lire fichier_produits

POUR CHAQUE produit DANS produits
    SI produit.nom = "Sac à dos"
        produit.stock = produit.stock - 1
    FIN SI
FIN POUR

écrire produits dans fichier_produits

Dans cet exemple, le programme suit trois grandes étapes :

  1. Il lit les données.

  2. Il modifie une information.

  3. Il enregistre les données mises à jour.

Vous n’avez pas besoin de connaître ici les détails techniques des formats de fichiers. Retenez surtout l’idée générale : le programme peut utiliser un fichier comme source d’information ou comme endroit où conserver un résultat.

Vérifiez les sorties console

Vous avez vu au chapitre 2 que la console permet d’observer ce que fait un programme. Dans ce chapitre consacré aux erreurs, elle devient aussi votre premier outil de diagnostic : quand un résultat ne correspond pas à ce que vous attendiez, c’est souvent en lisant la console que vous trouvez les premiers indices.

Si le résultat n’est pas celui attendu, vous pouvez comparer trois éléments :

Ce que je pensais que le programme ferait
Ce que le programme affiche
La partie du code qui produit cet affichage

Par exemple, si vous pensiez qu’une commande était possible, mais que la console affiche"Stock insuffisant", vous pouvez revenir à la condition qui compare la quantité demandée et le stock.

Cette démarche est importante : ne partez pas directement de l’idée que le programme “ne marche pas”. Essayez plutôt de formuler précisément ce que vous observez :

Le programme charge bien les produits.
Il vérifie le stock.
Il affiche "Stock insuffisant".
Je dois donc vérifier la valeur du stock et la quantité demandée.

Cette façon de raisonner vous aidera à expliquer votre démarche et à corriger plus facilement les problèmes simples.

À vous de jouer

Le menu de l’application est maintenant stocké dans un fichiermenu.csv. Chaque ligne contient un plat au formatnom,prix,disponible. Extrait :

Pizza,12,true
Salade,8,false
Burger,10,true
Tiramisu,6,true

Votre mission, en pseudo-code :

Partie 1 — Lisez le fichier

  1. Écrivez un blocESSAYER / SI ERREURqui litmenu.csvpuis affiche chaque ligne dans la console.

  2. Prévoyez un message d’erreur clair en cas d’échec de lecture.

Partie 2 — Cherchez l’origine d’une erreur

Vous lancez le programme d’un collègue et la console affiche :

Erreur : impossible d’ouvrir menu.csv
  1. Avant de modifier le code, listez au moins deux vérifications à effectuer sur votre environnement ou sur le fichier.

En résumé

  • Une erreur est un signal qui indique qu’une situation n’a pas pu être gérée correctement.

  • Gérer une erreur consiste à prévoir quoi faire quand une action échoue.

  • Un programme peut lire un fichier pour récupérer des données, puis écrire dans un fichier pour enregistrer un résultat.

  • Lire du code existant demande de repérer les données, les traitements, les sorties et les éléments importants du projet.

  • La console aide à vérifier le comportement réel du programme et à comprendre les messages affichés.

Vous avez maintenant posé les bases de la programmation back-end en pseudo-code. Il ne vous reste plus qu’à faire le quiz pour vérifier votre compréhension, puis vous pourrez réutiliser ces repères dans la suite de votre parcours, lorsque vous appliquerez ces mêmes concepts avec la syntaxe d’un langage précis.

Ever considered an OpenClassrooms diploma?
  • Up to 100% of your training program funded
  • Flexible start date
  • Career-focused projects
  • Individual mentoring
Find the training program and funding option that suits you best