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/1-try-catch/article.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -75,7 +75,7 @@ Voyons des exemples.
75
75
````warn header="`try...catch` ne fonctionne que pour les erreurs d'exécution"
76
76
Pour que `try...catch` fonctionne, le code doit être exécutable. En d'autres termes, le code doit être du JavaScript valide.
77
77
78
-
Cela ne fonctionnera pas si le code est syntaxiquement incorrect, par exemple, il a des accolades inégalées:
78
+
Cela ne fonctionnera pas si le code est syntaxiquement incorrect, par exemple, il a des accolades inégalées:
79
79
80
80
```js run
81
81
try {
@@ -91,7 +91,7 @@ Ainsi, `try...catch` ne peut gérer que les erreurs qui se produisent dans du co
91
91
````
92
92
93
93
````warn header="`try...catch` fonctionne de manière synchrone"
94
-
Si une exception se produit dans le code "planifié", comme dans `setTimeout`,`try...catch` ne l'attrapera pas :
94
+
Si une exception se produit dans le code "planifié", comme dans `setTimeout`,`try...catch` ne l'attrapera pas :
95
95
96
96
```js run
97
97
try {
@@ -109,7 +109,7 @@ Pour capturer une exception dans une fonction planifiée, `try...catch` doit êt
109
109
```js run
110
110
setTimeout(function() {
111
111
try {
112
-
noSuchVariable; // try...catch gère l'erreur!
112
+
noSuchVariable; // try...catch gère l'erreur!
113
113
} catch {
114
114
alert( "error is caught here!" );
115
115
}
@@ -119,7 +119,7 @@ setTimeout(function() {
119
119
120
120
## Objet d'erreur
121
121
122
-
En cas d'erreur, JavaScript génère un objet contenant les détails à son sujet. L'objet est ensuite passé en argument à `catch`:
122
+
En cas d'erreur, JavaScript génère un objet contenant les détails à son sujet. L'objet est ensuite passé en argument à `catch`:
123
123
124
124
```js
125
125
try {
@@ -129,20 +129,20 @@ try {
129
129
}
130
130
```
131
131
132
-
Pour toutes les erreurs intégrées, l'objet d'erreur a deux propriétés principales:
132
+
Pour toutes les erreurs intégrées, l'objet d'erreur a deux propriétés principales:
133
133
134
134
`name`
135
135
: Nom de l'erreur. Par exemple, pour une variable non définie, il s'agit de `"ReferenceError"`.
136
136
137
137
`message`
138
138
: Message textuel sur les détails de l'erreur.
139
139
140
-
Il existe d'autres propriétés non standard disponibles dans la plupart des environnements. L'un des plus largement utilisés et supportés est:
140
+
Il existe d'autres propriétés non standard disponibles dans la plupart des environnements. L'un des plus largement utilisés et supportés est:
141
141
142
142
`stack`
143
-
: Pile d'exécution en cours: chaîne contenant des informations sur la séquence d'appels imbriqués ayant entraîné l'erreur. Utilisé à des fins de débogage.
143
+
: Pile d'exécution en cours: chaîne contenant des informations sur la séquence d'appels imbriqués ayant entraîné l'erreur. Utilisé à des fins de débogage.
144
144
145
-
Par exemple:
145
+
Par exemple:
146
146
147
147
```js run untrusted
148
148
try {
@@ -164,7 +164,7 @@ try {
164
164
165
165
[recent browser=new]
166
166
167
-
Si nous n'avons pas besoin de détails d'erreur, `catch` peut l'omettre:
167
+
Si nous n'avons pas besoin de détails d'erreur, `catch` peut l'omettre:
168
168
169
169
```js
170
170
try {
@@ -182,7 +182,7 @@ Comme nous le savons déjà, JavaScript prend en charge la méthode [JSON.parse(
182
182
183
183
Il est généralement utilisé pour décoder les données reçues sur le réseau, par le serveur ou par une autre source.
184
184
185
-
Nous le recevons et appelons `JSON.parse` comme ceci:
185
+
Nous le recevons et appelons `JSON.parse` comme ceci:
186
186
187
187
```js run
188
188
let json = '{"name":"John", "age": 30}'; // données du serveur
@@ -200,7 +200,7 @@ Vous trouverez des informations plus détaillées sur JSON dans le chapitre <inf
200
200
201
201
**Si `json` est malformé, `JSON.parse` génère une erreur, de sorte que le script "meurt".**
202
202
203
-
Devrions-nous en être satisfaits ? Bien sûr que non!
203
+
Devrions-nous en être satisfaits ? Bien sûr que non!
204
204
205
205
De cette façon, si quelque chose ne va pas avec les données, le visiteur ne le saura jamais (à moins d'ouvrir la console du développeur). Et les gens n'aiment vraiment pas quand quelque chose "meurt" sans aucun message d'erreur.
206
206
@@ -226,13 +226,13 @@ try {
226
226
}
227
227
```
228
228
229
-
Ici, nous utilisons le bloc `catch` uniquement pour afficher le message, mais nous pouvons faire beaucoup plus: envoyer une nouvelle requête réseau, suggérer une alternative au visiteur, envoyer des informations sur l'erreur à un enregistrement des erreurs, ... . Bien mieux que de juste mourir.
229
+
Ici, nous utilisons le bloc `catch` uniquement pour afficher le message, mais nous pouvons faire beaucoup plus: envoyer une nouvelle requête réseau, suggérer une alternative au visiteur, envoyer des informations sur l'erreur à un système de journalisation, ... Bien mieux que de juste mourir.
230
230
231
231
## Lever nos propres exceptions
232
232
233
-
Que se passe-t-il si `json` est correct du point de vue syntaxique, mais qu'il n'a pas de propriété requise `name`?
233
+
Que se passe-t-il si `json` est correct du point de vue syntaxique, mais qu'il n'a pas de propriété requise `name`?
234
234
235
-
Comme ceci:
235
+
Comme ceci:
236
236
237
237
```js run
238
238
let json = '{ "age": 30 }'; // données incomplètes
@@ -241,7 +241,7 @@ try {
241
241
242
242
let user = JSON.parse(json); // <-- pas d'erreurs
243
243
*!*
244
-
alert( user.name ); // pas de "name"!
244
+
alert( user.name ); // pas de "name"!
245
245
*/!*
246
246
247
247
} catch (err) {
@@ -257,7 +257,7 @@ Pour unifier le traitement des erreurs, nous allons utiliser l'opérateur `throw
0 commit comments