‫Instructeur : Ainsi, jusqu'à ce stade du cours,
‫nous n'avons pas vraiment géré
‫les erreurs de manière appropriée ou à une place centrale dans notre application.
‫Ce que nous avons fait, c'est simplement renvoyer
‫un message d'erreur en tant que JSON dans chaque gestionnaire de route
‫en cas de problème.
‫Droit?
‫C'est donc essentiellement ce que nous allons corriger dans cette section.
‫Mais pour l'instant, prenons une
‫minute pour obtenir un bref aperçu de la gestion des erreurs dans Express.
‫Et nous commençons par faire la
‫distinction entre deux types d'erreurs qui peuvent se produire.
‫Erreurs de fonctionnement et erreurs de programmation.
‫Ainsi, les erreurs opérationnelles sont des problèmes dont
‫nous pouvons prédire qu'ils se produiront inévitablement à un
‫moment donné dans le futur.
‫Et donc nous avons juste besoin de les gérer à l'avance.
‫Ils n'ont rien à voir avec des bogues dans notre code.
‫Au lieu de cela, ils dépendent de l'utilisateur, du système
‫ou du réseau.
‫Ainsi, des choses comme un utilisateur accédant à un itinéraire invalide, saisissant des
‫données invalides ou une application ne parvient pas à se connecter à
‫la base de données.
‫Ce sont toutes des erreurs opérationnelles
‫que nous devrons
‫gérer afin de préparer notre candidature pour ces cas.
‫Vous verrez également le terme "exception"
‫utilisé au lieu d'erreur et
‫bien qu'ils soient conceptuellement différents, de nombreuses
‫personnes utilisent les termes
‫erreur et exception de manière interchangeable.
‫Et je vais juste les
‫appeler « erreurs » dans ce cours également afin d'éviter toute confusion.
‫Quoi qu'il en soit, d'un autre côté, nous avons des erreurs de programmation.
‫Ce sont simplement des bugs que nous,
‫les développeurs, introduisons dans notre code.
‫Comme, par exemple, essayer de
‫lire les propriétés d'une variable indéfinie, utiliser wait sans async,
‫accidentellement utiliser request. requête au lieu de requête. corps, ou bien
‫d'autres erreurs, vraiment, que nous pourrions commettre.
‫Alors, vous savez comment ça marche, n'est-ce pas ?
‫Et ils sont vraiment inévitables
‫mais aussi plus difficiles à trouver et à manipuler.
‫D'accord, il est donc important que vous compreniez
‫cette différence cruciale entre les erreurs opérationnelles et
‫les erreurs de programmation.
‫Ainsi, lorsque nous parlons de gestion des erreurs avec
‫Express, nous parlons principalement d'erreurs opérationnelles.
‫Car ce sont eux qui
‫sont faciles à attraper et à manipuler avec notre application Express.
‫Et Express est livré avec une gestion des
‫erreurs prête à l'emploi.
‫Ainsi, tout ce que nous
‫avons à faire est d'écrire un middleware global de
‫gestion des erreurs express qui détectera ensuite
‫les erreurs provenant de toute l'application.
‫Ainsi, peu importe s'il s'agit d'une erreur provenant d'un gestionnaire de
‫route, d'un validateur de modèle ou vraiment d'un autre endroit, le but
‫est que toutes ces erreurs se
‫retrouvent dans un middleware central de gestion des erreurs.
‫Afin que nous puissions envoyer une réponse agréable au client pour lui
‫faire savoir ce qui s'est passé.
‫Et donc, vraiment, la gestion dans ce cas signifie
‫simplement envoyer une réponse pour informer l'utilisateur de ce qui s'est passé.
‫Mais la gestion peut également signifier, dans
‫d'autres cas, réessayer l'opération ou planter le serveur,
‫ou simplement ignorer complètement l'erreur.
‫Parfois, c'est juste la meilleure option.
‫Maintenant, la beauté d'avoir un middleware global de gestion des
‫erreurs est qu'il permet une belle séparation des préoccupations.
‫Ainsi, nous n'avons pas à nous soucier
‫de la gestion des erreurs directement dans notre logique métier ou
‫nos contrôleurs, ou vraiment n'importe où dans notre application.
‫Nous pouvons simplement envoyer les erreurs au gestionnaire d'erreurs qui décidera
‫ensuite de ce qu'il faut en faire ensuite.
‫D'accord?
‫Donc, avec tout cela étant
‫dit, commençons maintenant à mettre cela en œuvre.