Gestion des erreurs
Les erreurs peuvent être divisées en deux catégories : erreurs attendues et exceptions non capturées. Cette page vous expliquera comment gérer ces erreurs dans votre application Next.js.
Gestion des erreurs attendues
Les erreurs attendues sont celles qui peuvent survenir lors du fonctionnement normal de l'application, comme celles provenant de la validation côté serveur de formulaires ou de requêtes échouées. Ces erreurs doivent être gérées explicitement et renvoyées au client.
Fonctions serveur
Vous pouvez utiliser le hook useActionState
pour gérer les erreurs attendues dans les Fonctions serveur.
Pour ces erreurs, évitez d'utiliser des blocs try
/catch
et de lancer des erreurs. Modélisez plutôt les erreurs attendues comme des valeurs de retour.
Vous pouvez passer votre action au hook useActionState
et utiliser l'état (state
) retourné pour afficher un message d'erreur.
Composants serveur
Lors de la récupération de données dans un composant serveur, vous pouvez utiliser la réponse pour afficher conditionnellement un message d'erreur ou effectuer une redirection
.
Not found
Vous pouvez appeler la fonction notFound
dans un segment de route et utiliser le fichier not-found.js
pour afficher une interface utilisateur 404.
Gestion des exceptions non capturées
Les exceptions non capturées sont des erreurs inattendues qui indiquent des bugs ou des problèmes qui ne devraient pas survenir pendant le flux normal de votre application. Celles-ci doivent être gérées en lançant des erreurs, qui seront ensuite capturées par les limites d'erreur (error boundaries).
Limites d'erreur imbriquées
Next.js utilise des limites d'erreur pour gérer les exceptions non capturées. Les limites d'erreur capturent les erreurs dans leurs composants enfants et affichent une interface de repli au lieu de l'arborescence de composants qui a planté.
Créez une limite d'erreur en ajoutant un fichier error.js
dans un segment de route et en exportant un composant React :
Les erreurs remonteront jusqu'à la limite d'erreur parente la plus proche. Cela permet une gestion granulaire des erreurs en plaçant des fichiers error.tsx
à différents niveaux dans la hiérarchie des routes.

Erreurs globales
Bien que moins courantes, vous pouvez gérer les erreurs dans la mise en page racine en utilisant le fichier global-error.js
, situé dans le répertoire racine de l'application, même en utilisant l'internationalisation. L'interface utilisateur d'erreur globale doit définir ses propres balises <html>
et <body>
, car elle remplace la mise en page ou le modèle racine lorsqu'elle est active.