You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/10-error-handling/2-custom-errors/article.md
+4-18Lines changed: 4 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,15 +21,9 @@ En interne, nous utiliserons `JSON.parse`. S'il reçoit un `json` malformé, il
21
21
22
22
Notre fonction `readUser(json)` va non seulement lire JSON, mais aussi vérifier ("valider") les données. S'il n'y a pas de champs obligatoires ou si le format est incorrect, c'est une erreur. Et ce n’est pas une `SyntaxError`, car les données sont syntaxiquement correctes, mais un autre type d’erreur. Nous l'appellerons `ValidationError` et créerons une classe pour cela. Une erreur de ce type devrait également comporter des informations sur le champ fautif.
23
23
24
-
<<<<<<< HEAD
25
-
Notre classe `ValidationError` devrait hériter de la classe `Error` intégrée.
24
+
Notre classe `ValidationError` devrait hériter de la classe `Error`.
26
25
27
-
Cette classe est intégrée, voici le code approximatif, pour que nous comprenions ce que nous étendons:
28
-
=======
29
-
Our `ValidationError` class should inherit from the `Error` class.
30
-
31
-
The `Error` class is built-in, but here's its approximate code so we can understand what we're extending:
32
-
>>>>>>> 4d01fc20d4d82358e61518a31efe80dec9bb2602
26
+
La class `Error` est une classe intégrée, voici le code approximatif pour que nous comprenions ce que nous étendons :
33
27
34
28
```js
35
29
// Le "pseudocode" pour la classe d'erreur intégrée définie par JavaScript lui-même
@@ -127,19 +121,11 @@ Nous pourrions aussi regarder `err.name`, comme ceci:
127
121
128
122
La version `instanceof` est bien meilleure, car dans le futur nous allons étendre `ValidationError`, en créer des sous-types, comme `PropertyRequiredError`. Et `instanceof` check continuera à fonctionner pour les nouvelles classes héritées. Donc, c'est à l'épreuve du futur.
129
123
130
-
<<<<<<< HEAD
131
-
De plus, il est important que si `catch` rencontre une erreur inconnue, il la propage, comme à la ligne `(**)`. Le bloc `catch` ne sait que gérer les erreurs de validation et de syntaxe, d'autres types (dus à une faute de frappe dans le code ou à d'autres inconnus) devraient "tomber".
132
-
=======
133
-
Also it's important that if `catch` meets an unknown error, then it rethrows it in the line `(**)`. The `catch` block only knows how to handle validation and syntax errors, other kinds (caused by a typo in the code or other unknown reasons) should fall through.
134
-
>>>>>>> 4d01fc20d4d82358e61518a31efe80dec9bb2602
124
+
Il est également important que si `catch` rencontre une erreur inconnue, il la renvoie dans la ligne `(**)`. Le bloc `catch` ne sait que gérer les erreurs de validation et de syntaxe, d'autres types (causés par une faute de frappe dans le code ou d'autres raisons inconnues) devraient tomber.
135
125
136
126
## Héritage complémentaire
137
127
138
-
<<<<<<< HEAD
139
-
La classe `ValidationError` est très générique. Beaucoup de choses peuvent mal se passer. La propriété peut être absente ou dans un format incorrect (comme une valeur de chaîne pour `age`). Faisons une classe plus concrète `PropertyRequiredError`, exactement pour les propriétés absentes. Il contiendra des informations supplémentaires sur la propriété qui manque.
140
-
=======
141
-
The `ValidationError` class is very generic. Many things may go wrong. The property may be absent or it may be in a wrong format (like a string value for `age` instead of a number). Let's make a more concrete class `PropertyRequiredError`, exactly for absent properties. It will carry additional information about the property that's missing.
142
-
>>>>>>> 4d01fc20d4d82358e61518a31efe80dec9bb2602
128
+
La classe `ValidationError` est très générique. Beaucoup de choses peuvent mal se passer. La propriété peut être absente ou dans un format incorrect (comme une valeur de chaîne de caractères pour `age` au lieu d’un nombre). Faisons une classe plus concrète `PropertyRequiredError`, exactement pour les propriétés absentes. Elle contiendra des informations supplémentaires sur la propriété qui manque.
0 commit comments