Les messages d’erreur, expliqués
104 messages d’erreur : ce qu’ils veulent dire, pourquoi ils surviennent, quoi faire.
Les correctifs ont un coût. git reset --hard jette le travail non validé, un push forcé peut détruire les commits d’un collègue, et docker system prune supprime les volumes sans nom. Là où c’est le cas, la fiche le dit.
Git29
Presque toutes les erreurs de git sont un refus qui signifie « faire cela depuis cet état ferait perdre quelque chose » ; fatal: veut dire que git s'est arrêté sans rien modifier, et les lignes hint: sous la première portent souvent le vrai remède.
npm20
Avec npm, la cause tient dans la première ligne code XXXX et non dans les six dernières lignes npm ERR!, et quand la panne vient de l'arbre de dépendances ou d'une compilation native plutôt que de votre code, supprimer node_modules puis réinstaller en règle environ la moitié.
JavaScript15
Les erreurs du navigateur et de Node disent d'ordinaire ce qui a cassé et non pourquoi la valeur est devenue telle — vous avez lu undefined, ce n'était pas une fonction, ce n'était pas du JSON — l'endroit à corriger se trouve donc en amont de la ligne qui a levé l'erreur, et faire taire cette seule ligne avec ?. et des valeurs par défaut fait revenir le même problème plus loin, sous une forme plus difficile à reconnaître.
Python18
Une trace Python coupe la réponse en deux : la dernière ligne dit ce qui a échoué, les cadres au-dessus disent où — ne lire que la dernière ligne donne le nom et fait perdre l'endroit ; et pour les erreurs de valeur absente comme NoneType et KeyError, la cause siège presque toujours dans un cadre au-dessus de celui qui a planté.
Build et types10
Les erreurs de build sont un outil qui refuse avant toute exécution : elles ne cassent rien à l'instant où elles surgissent, mais elles posent deux questions — corrigerez-vous le type ou le chemin pour coller à la forme réelle, ou ferez-vous passer cette seule ligne avec un as any ou un commentaire de suppression ? Et c'est ici que se révèlent pour la première fois les choses qui ne sont vraies que sur votre machine : la casse, les extensions et les variables d'environnement.
Docker12
Les erreurs de Docker ne deviennent lisibles qu'une fois rangées par couche — le client qui n'atteint pas le démon, le registre qui refuse, un RUN qui échoue au build, un conteneur qui meurt dès son démarrage sont quatre problèmes distincts — et pour les couches build et exécution, la ligne n'est pas la raison : la raison est dans la sortie de la commande qui tournait à l'intérieur, tandis que le coût de chaque correctif varie aussi selon la couche.
Lire un message d’erreur
- Lisez à partir de la première ligne. Plus on descend, plus il s’agit des entrailles de l’outil ; la cause est généralement en haut.
- S’il y a un fichier et un numéro de ligne, commencez là — pas la première image de la pile, mais la ligne la plus haute qui nomme un fichier de vous.
- Cherchez le message tel quel, mais retirez d’abord vos chemins et vos noms de variables : c’est cela qui empêche la correspondance.
- La même situation se formule autrement selon la version de l’outil. Si les résultats sonnent faux, ajoutez le numéro de version.
- Avant de coller un correctif, vérifiez ce qu’il jette. Certains sont irréversibles.
Questions fréquentes
Q. Pourquoi ne pas traduire les messages ?
Parce qu’on va les chercher. L’outil écrit en anglais, et un message traduit ne trouve rien. Seuls le sens et le remède suivent la langue.
Q. Sur mon écran, la formulation diffère un peu.
Les outils reformulent d’une version à l’autre. Si le squelette correspond après avoir retiré vos chemins et vos noms, c’est la même erreur. Si la version diffère, ajoutez-la à la requête.
Q. Puis-je exécuter le correctif tel quel ?
Vérifiez d’abord ce qu’il jette. git reset --hard, un push forcé et docker system prune retirent des choses irrécupérables ; les fiches le disent quand c’est le cas.
Q. Comment chercher une erreur absente d’ici ?
Retirez du message vos chemins, noms et nombres, et cherchez le reste. Ce reste est la phrase écrite par les auteurs de l’outil : c’est elle qui correspond.