﻿1
00:00:01,320 --> 00:00:03,670
‫Instructeur : Ainsi, jusqu'à ce stade du cours,

2
00:00:03,670 --> 00:00:05,430
‫nous n'avons pas vraiment géré

3
00:00:05,430 --> 00:00:09,420
‫les erreurs de manière appropriée ou à une place centrale dans notre application.

4
00:00:09,420 --> 00:00:11,690
‫Ce que nous avons fait, c'est simplement renvoyer

5
00:00:11,690 --> 00:00:15,180
‫un message d'erreur en tant que JSON dans chaque gestionnaire de route

6
00:00:15,180 --> 00:00:16,750
‫en cas de problème.

7
00:00:16,750 --> 00:00:17,760
‫Droit?

8
00:00:17,760 --> 00:00:21,250
‫C'est donc essentiellement ce que nous allons corriger dans cette section.

9
00:00:21,250 --> 00:00:22,860
‫Mais pour l'instant, prenons une

10
00:00:22,860 --> 00:00:26,653
‫minute pour obtenir un bref aperçu de la gestion des erreurs dans Express.

11
00:00:27,490 --> 00:00:29,700
‫Et nous commençons par faire la

12
00:00:29,700 --> 00:00:32,550
‫distinction entre deux types d'erreurs qui peuvent se produire.

13
00:00:32,550 --> 00:00:35,660
‫Erreurs de fonctionnement et erreurs de programmation.

14
00:00:35,660 --> 00:00:38,060
‫Ainsi, les erreurs opérationnelles sont des problèmes dont

15
00:00:38,060 --> 00:00:40,760
‫nous pouvons prédire qu'ils se produiront inévitablement à un

16
00:00:40,760 --> 00:00:42,480
‫moment donné dans le futur.

17
00:00:42,480 --> 00:00:45,500
‫Et donc nous avons juste besoin de les gérer à l'avance.

18
00:00:45,500 --> 00:00:48,430
‫Ils n'ont rien à voir avec des bogues dans notre code.

19
00:00:48,430 --> 00:00:51,760
‫Au lieu de cela, ils dépendent de l'utilisateur, du système

20
00:00:51,760 --> 00:00:53,050
‫ou du réseau.

21
00:00:53,050 --> 00:00:57,320
‫Ainsi, des choses comme un utilisateur accédant à un itinéraire invalide, saisissant des

22
00:00:57,320 --> 00:01:01,430
‫données invalides ou une application ne parvient pas à se connecter à

23
00:01:01,430 --> 00:01:02,870
‫la base de données.

24
00:01:02,870 --> 00:01:05,290
‫Ce sont toutes des erreurs opérationnelles

25
00:01:05,290 --> 00:01:06,920
‫que nous devrons

26
00:01:06,920 --> 00:01:10,440
‫gérer afin de préparer notre candidature pour ces cas.

27
00:01:10,440 --> 00:01:12,590
‫Vous verrez également le terme "exception"

28
00:01:12,590 --> 00:01:14,680
‫utilisé au lieu d'erreur et

29
00:01:14,680 --> 00:01:17,200
‫bien qu'ils soient conceptuellement différents, de nombreuses

30
00:01:17,200 --> 00:01:19,290
‫personnes utilisent les termes

31
00:01:19,290 --> 00:01:21,670
‫erreur et exception de manière interchangeable.

32
00:01:21,670 --> 00:01:23,370
‫Et je vais juste les

33
00:01:23,370 --> 00:01:26,860
‫appeler « erreurs » dans ce cours également afin d'éviter toute confusion.

34
00:01:26,860 --> 00:01:30,460
‫Quoi qu'il en soit, d'un autre côté, nous avons des erreurs de programmation.

35
00:01:30,460 --> 00:01:32,800
‫Ce sont simplement des bugs que nous,

36
00:01:32,800 --> 00:01:34,810
‫les développeurs, introduisons dans notre code.

37
00:01:34,810 --> 00:01:37,010
‫Comme, par exemple, essayer de

38
00:01:37,010 --> 00:01:41,220
‫lire les propriétés d'une variable indéfinie, utiliser wait sans async,

39
00:01:41,220 --> 00:01:46,070
‫accidentellement utiliser request. requête au lieu de requête. corps, ou bien

40
00:01:46,070 --> 00:01:49,020
‫d'autres erreurs, vraiment, que nous pourrions commettre.

41
00:01:49,020 --> 00:01:51,530
‫Alors, vous savez comment ça marche, n'est-ce pas ?

42
00:01:51,530 --> 00:01:53,540
‫Et ils sont vraiment inévitables

43
00:01:53,540 --> 00:01:56,810
‫mais aussi plus difficiles à trouver et à manipuler.

44
00:01:56,810 --> 00:01:59,720
‫D'accord, il est donc important que vous compreniez

45
00:01:59,720 --> 00:02:02,480
‫cette différence cruciale entre les erreurs opérationnelles et

46
00:02:02,480 --> 00:02:04,230
‫les erreurs de programmation.

47
00:02:04,230 --> 00:02:07,330
‫Ainsi, lorsque nous parlons de gestion des erreurs avec

48
00:02:07,330 --> 00:02:09,930
‫Express, nous parlons principalement d'erreurs opérationnelles.

49
00:02:09,930 --> 00:02:11,890
‫Car ce sont eux qui

50
00:02:11,890 --> 00:02:15,650
‫sont faciles à attraper et à manipuler avec notre application Express.

51
00:02:15,650 --> 00:02:18,070
‫Et Express est livré avec une gestion des

52
00:02:18,070 --> 00:02:19,390
‫erreurs prête à l'emploi.

53
00:02:19,390 --> 00:02:21,160
‫Ainsi, tout ce que nous

54
00:02:21,160 --> 00:02:24,010
‫avons à faire est d'écrire un middleware global de

55
00:02:24,010 --> 00:02:26,090
‫gestion des erreurs express qui détectera ensuite

56
00:02:26,090 --> 00:02:28,050
‫les erreurs provenant de toute l'application.

57
00:02:28,050 --> 00:02:31,260
‫Ainsi, peu importe s'il s'agit d'une erreur provenant d'un gestionnaire de

58
00:02:31,260 --> 00:02:34,950
‫route, d'un validateur de modèle ou vraiment d'un autre endroit, le but

59
00:02:34,950 --> 00:02:37,240
‫est que toutes ces erreurs se

60
00:02:37,240 --> 00:02:39,920
‫retrouvent dans un middleware central de gestion des erreurs.

61
00:02:39,920 --> 00:02:43,610
‫Afin que nous puissions envoyer une réponse agréable au client pour lui

62
00:02:43,610 --> 00:02:45,510
‫faire savoir ce qui s'est passé.

63
00:02:45,510 --> 00:02:48,340
‫Et donc, vraiment, la gestion dans ce cas signifie

64
00:02:48,340 --> 00:02:52,040
‫simplement envoyer une réponse pour informer l'utilisateur de ce qui s'est passé.

65
00:02:52,040 --> 00:02:55,050
‫Mais la gestion peut également signifier, dans

66
00:02:55,050 --> 00:02:58,220
‫d'autres cas, réessayer l'opération ou planter le serveur,

67
00:02:58,220 --> 00:03:00,960
‫ou simplement ignorer complètement l'erreur.

68
00:03:00,960 --> 00:03:03,980
‫Parfois, c'est juste la meilleure option.

69
00:03:03,980 --> 00:03:07,470
‫Maintenant, la beauté d'avoir un middleware global de gestion des

70
00:03:07,470 --> 00:03:10,830
‫erreurs est qu'il permet une belle séparation des préoccupations.

71
00:03:10,830 --> 00:03:13,170
‫Ainsi, nous n'avons pas à nous soucier

72
00:03:13,170 --> 00:03:16,220
‫de la gestion des erreurs directement dans notre logique métier ou

73
00:03:16,220 --> 00:03:18,750
‫nos contrôleurs, ou vraiment n'importe où dans notre application.

74
00:03:18,750 --> 00:03:22,090
‫Nous pouvons simplement envoyer les erreurs au gestionnaire d'erreurs qui décidera

75
00:03:22,090 --> 00:03:25,090
‫ensuite de ce qu'il faut en faire ensuite.

76
00:03:25,090 --> 00:03:26,340
‫D'accord?

77
00:03:26,340 --> 00:03:28,170
‫Donc, avec tout cela étant

78
00:03:28,170 --> 00:03:30,463
‫dit, commençons maintenant à mettre cela en œuvre.

