Explication des messages d'erreur : décodez les traces de pile et trouvez le correctif
Collez un message d’erreur, une exception ou une trace de pile et obtenez une explication en anglais simple du problème, de sa cause et de la façon de le corriger. Gratuit, sans compte.
Vous traquez un bug dans plusieurs fichiers ?
Avec Pro, la trace d’erreur, le code défaillant et la configuration tiennent dans un seul message pour un diagnostic complet en une fois.
Aide au code illimitée - Gratuite pendant 7 jours
Générations illimitées, modèles d'IA premium, contexte étendu et historique enregistré. Aucun débit aujourd'hui, résiliez à tout moment.
- Utilisation illimitée
- Modèles premium
- Sans publicité
- Essai gratuit de 7 jours
- Résiliable à tout moment
Décryptez les messages d’erreur et les traces de pile en langage clair
Les messages d'erreur sont écrits pour les compilateurs et les environnements d'exécution, pas pour les développeurs. TypeError: Cannot read properties of undefined (reading 'map') vous indique le symptôme, pas la cause. NullPointerException at line 247 vous indique où, mais pas pourquoi. Pour passer de l'erreur à sa correction, il faut comprendre ce que l'environnement d'exécution essayait de faire au moment de l'échec - et c'est ce que l'IA explique.
Collez l'erreur seule ou avec le code concerné pour un diagnostic plus précis. Pour comprendre le code à l'origine de l'erreur, notre Outil d’explication du code explique le raisonnement. Pour éviter que cette erreur ne se reproduise, notre Générateur de tests unitaires écrit des tests qui le détecteront la prochaine fois. Pour les erreurs système provenant de commandes shell, notre Générateur de commandes Bash aide à mener l’enquête.
Types d'erreurs pris en charge
Pourquoi les messages d’erreur sont difficiles à comprendre
Les messages d'erreur décrivent le symptôme, pas la maladie. L'IA lit la trace complète et remonte du point de défaillance jusqu'à la cause profonde - puis vous propose des correctifs concrets dans le bon ordre.
AttributeError, TypeError, ImportError, ValueError, KeyError, IndexError et exceptions propres aux frameworks Django, Flask, FastAPI et SQLAlchemy.
TypeError, ReferenceError, RangeError, rejets de Promise, erreurs CORS et erreurs de React, Next.js, Express et d’autres frameworks populaires.
NullPointerException, ClassCastException, StackOverflowError, OutOfMemoryError et erreurs des frameworks Spring Boot / Hibernate expliquées en anglais courant.
Erreurs de syntaxe SQL, violations de contraintes, erreurs de mapping ORM, épuisement du pool de connexions et dépassements du délai d'exécution des requêtes avec PostgreSQL, MySQL et SQLite.
Anatomie d'une trace de pile
La compétence la plus utile en débogage consiste à savoir par quel bout commencer à lire une trace de pile, car Python et JavaScript les affichent dans des sens opposés.
Python : lisez de bas en haut
Python affiche "most recent call last" : l’exception proprement dite se trouve donc sur la dernière ligne, et le cadre d’exécution qui l’a déclenchée juste au-dessus. Remontez depuis le bas jusqu’au premier fichier appartenant à votre projet plutôt qu’à une bibliothèque.
Traceback (most recent call last): ← oldest call, start of the chain
File "app.py", line 42, in handle_order
total = summarize(order.items) ← your code: last frame you own
File "utils/pricing.py", line 17, in summarize
return sum(i.price for i in items) ← the frame that actually raised
TypeError: unsupported operand type(s)
for +: 'int' and 'NoneType' ← the error itself: READ THIS FIRST
JavaScript : lisez de haut en bas
JavaScript inverse la présentation : le message d’erreur apparaît d’abord, et le cadre de pile à l’origine de l’exception est le premier at ligne, et les appelants apparaissent en dessous. Lisez de haut en bas, en sautant node_modules et node:internal niveaux de pile jusqu’à atteindre un chemin dans votre propre arborescence de code source.
TypeError: Cannot read properties of undefined (reading 'map') ← the error, printed first
at renderList (src/components/List.js:31:22) ← the frame that threw
at App (src/App.js:12:10) ← its caller: your code
at renderWithHooks (node_modules/react-dom/...) ← library frame, skip
at node:internal/process/task_queues:95:5 ← runtime plumbing, ignore
Les 5 catégories d'erreurs les plus courantes et où chercher en premier
La plupart des erreurs que les développeurs collent dans cet outil relèvent de cinq catégories. Chacune a une vérification à effectuer en priorité qui résout la majorité des cas.
| Catégorie | Message type | Premier point à vérifier |
|---|---|---|
| Erreurs de type | TypeError: 'NoneType' object is not iterable |
D’où vient ce None/undefined ? Remontez d’un appel : une recherche n’a rien trouvé ou il manque une instruction return dans une fonction. |
| Erreurs de syntaxe | SyntaxError: unexpected token |
La ligne qui précède celle signalée. Les parenthèses ou crochets non fermés et les virgules manquantes font échouer l’analyseur une ligne plus loin. |
| Erreurs d’importation / de modules | ModuleNotFoundError: No module named 'x' |
Quel environnement est en cours d’exécution ? Le paquet est généralement installé, mais dans un autre venv, une autre version de Node ou un autre conteneur que celui qui exécute le code. |
| Erreurs asynchrones | UnhandledPromiseRejection / coroutine was never awaited |
Un await manquant. Recherchez une promesse ou une coroutine utilisée comme s’il s’agissait de sa valeur résolue, surtout dans les boucles et les fonctions de rappel. |
| Décalage d’une unité / plage | IndexError: list index out of range |
Entrées aux limites : collections vides, collections à un seul élément et boucles utilisant <= où < était le sens voulu. |