Lire un message d'erreur
Le journal de bord : comprendre les alertes avant de paniquer.
Un message d'erreur, c'est pas un Game Over. C'est un indice. Comme quand ton personnage tombe dans un piege et qu'un PNJ te dit : "Attention, le sol est fragile ici". L'erreur te montre exactement ou regarder.
Ce chapitre t'apprend a lire les erreurs au lieu de les fuir. Tu vas voir, c'est plus simple qu'on croit.
1.1La panique du debutant (c'est normal)
Quand tu debutes, un message d'erreur en rouge dans la console, c'est comme un ecran de mort dans un jeu : ton coeur s'accelere, tu ne sais pas quoi faire. Bonne nouvelle : tout le monde est passe par la. Meme les devs seniors lisent des erreurs tous les jours.
La difference ? Ils ne paniquent plus. Ils ont appris a decoder le message. Et toi aussi tu vas apprendre.
1.2Anatomie d'un message d'erreur
Un message d'erreur, c'est toujours la meme structure. Une fois que tu la connais, tu peux lire N'IMPORTE quelle erreur :
TypeError: Cannot read properties of undefined (reading 'name')
at UserCard (components/UserCard.tsx:12:24)
at renderWithHooks (react-dom.development.js:16305:18)
at mountIndeterminateComponent (react-dom.development.js:20074:13)
# Decomposition :
# 1. TYPE D'ERREUR -> TypeError (le type de l'objet n'est pas bon)
# 2. MESSAGE -> Cannot read properties of undefined (reading 'name')
# = tu essaies de lire .name sur quelque chose qui est undefined
# 3. FICHIER + LIGNE -> UserCard.tsx:12:24
# = fichier UserCard.tsx, ligne 12, colonne 24
# 4. STACK TRACE -> la chaine d'appels qui a mene a l'erreur1.3Les 4 types d'erreurs a connaitre
SyntaxError
Erreur de syntaxe : tu as oublie une parenthese, un point-virgule, une accolade.
TypeError
Tu utilises un type incorrect : .map() sur un string, .name sur undefined.
ReferenceError
Tu utilises une variable qui n'existe pas (faute de frappe, mauvais import).
RangeError
Une valeur est hors des limites (tableau vide, recursion infinie).
1.4Le reflexe en 3 etapes
A chaque erreur, applique cette routine. C'est ta "combo de base" :
Lis le message
Pas la stack trace, juste la premiere ligne. Quel TYPE d'erreur ? Quel MESSAGE ?
Trouve le fichier et la ligne
Cherche TON fichier dans la stack (pas les fichiers de React ou Node). Va a la ligne indiquee.
Comprends ce qui cloche
Regarde la valeur a cette ligne. Est-ce qu'elle est undefined ? null ? un mauvais type ?
// UserCard.tsx
interface UserCardProps {
user: { name: string; email: string }
}
export function UserCard({ user }: UserCardProps) {
// Ligne 12 : si user est undefined, user.name plante
return (
<div>
<h2>{user.name}</h2> {/* <- BOUM ! TypeError si user est undefined */}
<p>{user.email}</p>
</div>
)
}
// Le fix : verifier que user existe
export function UserCardFixed({ user }: UserCardProps) {
if (!user) return <p>Chargement...</p>
return (
<div>
<h2>{user.name}</h2>
<p>{user.email}</p>
</div>
)
}1.5Les erreurs du navigateur vs du serveur
Avec Next.js, tu as deux endroits ou les erreurs apparaissent :
Console du navigateur
- - Erreurs des composants client (
'use client') - - Erreurs de rendu React
- - Erreurs fetch cote client
- - Accessible via F12 > Console
Terminal (serveur)
- - Erreurs des Server Components
- - Erreurs des API Routes
- - Erreurs de build
- - Visible dans le terminal ou tourne
npm run dev
1.6Ta premiere quete : decoder une erreur
La prochaine fois que tu as une erreur, avant de la copier-coller dans Google ou dans ChatGPT, prends 30 secondes pour appliquer la routine :
Mini-quete : le decodeur
- 1. Lis la premiere ligne du message d'erreur
- 2. Identifie le type (SyntaxError, TypeError, etc.)
- 3. Trouve TON fichier dans la stack trace
- 4. Va a la ligne indiquee
- 5. Essaie de comprendre AVANT de chercher sur Google
Meme si tu ne trouves pas le fix, tu auras compris le probleme. Et c'est deja la moitie du chemin.