Skip to content

Commit cf521b8

Browse files
committed
Translation of centralizedhandling.md
1 parent f430996 commit cf521b8

File tree

1 file changed

+27
-27
lines changed

1 file changed

+27
-27
lines changed

sections/errorhandling/centralizedhandling.french.md

+27-27
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
# Handle errors centrally. Not within middlewares
1+
# Gérez les erreurs de manière centralisée, pas dans les middlewares
22

3-
### One Paragraph Explainer
3+
### Un paragraphe d'explication
44

5-
Without one dedicated object for error handling, greater are the chances of important errors hiding under the radar due to improper handling. The error handler object is responsible for making the error visible, for example by writing to a well-formatted logger, sending events to some monitoring product like [Sentry](https://sentry.io/), [Rollbar](https://rollbar.com/), or [Raygun](https://raygun.com/). Most web frameworks, like [Express](http://expressjs.com/en/guide/error-handling.html#writing-error-handlers), provide an error handling middleware mechanism. A typical error handling flow might be: Some module throws an error -> API router catches the error -> it propagates the error to the middleware (e.g. Express, KOA) who is responsible for catching errors -> a centralized error handler is called -> the middleware is being told whether this error is an untrusted error (not operational) so it can restart the app gracefully. Note that it’s a common, yet wrong, practice to handle errors within Express middleware – doing so will not cover errors that are thrown in non-web interfaces.
5+
En l'absence d'un objet dédié à la gestion des erreurs, les chances que des erreurs importantes se cachent sous le capot en raison d'une mauvaise manipulation sont plus grandes. L'objet gestionnaire d'erreur est là pour rendre l'erreur visible, par exemple en écrivant dans un logger bien formaté, en envoyant des événements à un produit de surveillance comme [Sentry](https://sentry.io/), [Rollbar](https://rollbar.com/) ou [Raygun](https://raygun.com/). La plupart des frameworks Web, comme [Express](http://expressjs.com/en/guide/error-handling.html#writing-error-handlers), fournissent un mécanisme de middleware de gestion des erreurs. Un flux de gestion d'erreurs typique pourrait être : des modules génèrent une erreur -> le routeur de l'API intercepte l'erreur -> il propage l'erreur au middleware (par exemple Express, KOA) qui est responsable de la capture des erreurs -> un gestionnaire d'erreurs centralisé est appelé -> le middleware est informé si cette erreur est une erreur non fiable (non opérationnelle) afin qu'il puisse redémarrer l'application avec douceur. Notez que c'est une pratique courante, mais erronée de gérer les erreurs dans le middleware Express - cela ne couvrira pas les erreurs qui sont lancées dans les interfaces non Web.
66

7-
### Code Example – a typical error flow
7+
### Exemple de code - un flux d'erreur typique
88

99
<details>
1010
<summary><strong>Javascript</strong></summary>
1111

1212
```javascript
13-
// DAL layer, we don't handle errors here
13+
// Strate de la DAL, nous ne gérons pas les erreurs ici
1414
DB.addDocument(newCustomer, (error, result) => {
1515
if (error)
16-
throw new Error('Great error explanation comes here', other useful parameters)
16+
throw new Error('Une bonne explication de l\'erreur à cet endroit', autres parametres utiles)
1717
});
1818

19-
// API route code, we catch both sync and async errors and forward to the middleware
19+
// Code de l'API route, nous interceptons les erreurs synchrone et asynchrone et les transmettons au middleware
2020
try {
2121
customerService.addNew(req.body).then((result) => {
2222
res.status(200).json(result);
@@ -28,7 +28,7 @@ catch (error) {
2828
next(error);
2929
}
3030

31-
// Error handling middleware, we delegate the handling to the centralized error handler
31+
// Gestion des erreurs du middleware, nous déléguons la gestion au gestionnaire d'erreurs centralisé
3232
app.use(async (err, req, res, next) => {
3333
const isOperationalError = await errorHandler.handleError(err);
3434
if (!isOperationalError) {
@@ -42,13 +42,13 @@ app.use(async (err, req, res, next) => {
4242
<summary><strong>Typescript</strong></summary>
4343

4444
```typescript
45-
// DAL layer, we don't handle errors here
45+
// Strate de la DAL, nous ne gérons pas les erreurs ici
4646
DB.addDocument(newCustomer, (error: Error, result: Result) => {
4747
if (error)
48-
throw new Error('Great error explanation comes here', other useful parameters)
48+
throw new Error('Une bonne explication de l\'erreur à cet endroit', autres parametres utiles)
4949
});
5050

51-
// API route code, we catch both sync and async errors and forward to the middleware
51+
// Code de l'API route, nous interceptons les erreurs synchrone et asynchrone et les transmettons au middleware
5252
try {
5353
customerService.addNew(req.body).then((result: Result) => {
5454
res.status(200).json(result);
@@ -60,7 +60,7 @@ catch (error) {
6060
next(error);
6161
}
6262

63-
// Error handling middleware, we delegate the handling to the centralized error handler
63+
// Gestion des erreurs du middleware, nous déléguons la gestion au gestionnaire d'erreurs centralisé
6464
app.use(async (err: Error, req: Request, res: Response, next: NextFunction) => {
6565
const isOperationalError = await errorHandler.handleError(err);
6666
if (!isOperationalError) {
@@ -71,7 +71,7 @@ app.use(async (err: Error, req: Request, res: Response, next: NextFunction) => {
7171
</details>
7272

7373

74-
### Code example – handling errors within a dedicated object
74+
### Exemple de code - gestion des erreurs dans un objet dédié
7575

7676
<details>
7777
<summary><strong>Javascript</strong></summary>
@@ -108,17 +108,17 @@ export const handler = new ErrorHandler();
108108
</details>
109109

110110

111-
### Code Example – Anti Pattern: handling errors within the middleware
111+
### Contre exemple de code - gestion des erreurs dans le middleware
112112

113113
<details>
114114
<summary><strong>Javascript</strong></summary>
115115

116116
```javascript
117-
// middleware handling the error directly, who will handle Cron jobs and testing errors?
117+
// middleware traitant l'erreur directement, qui va gérer les tâches Cron et tester les erreurs ?
118118
app.use((err, req, res, next) => {
119119
logger.logError(err);
120120
if (err.severity == errors.high) {
121-
mailer.sendMail(configuration.adminMail, 'Critical error occured', err);
121+
mailer.sendMail(configuration.adminMail, 'Une erreur critique s\'est produite', err);
122122
}
123123
if (!err.isOperational) {
124124
next(err);
@@ -132,11 +132,11 @@ app.use((err, req, res, next) => {
132132
<summary><strong>Typescript</strong></summary>
133133

134134
```typescript
135-
// middleware handling the error directly, who will handle Cron jobs and testing errors?
135+
// middleware traitant l'erreur directement, qui va gérer les tâches Cron et tester les erreurs ?
136136
app.use((err: Error, req: Request, res: Response, next: NextFunction) => {
137137
logger.logError(err);
138138
if (err.severity == errors.high) {
139-
mailer.sendMail(configuration.adminMail, 'Critical error occured', err);
139+
mailer.sendMail(configuration.adminMail, 'Une erreur critique s\'est produite', err);
140140
}
141141
if (!err.isOperational) {
142142
next(err);
@@ -145,20 +145,20 @@ app.use((err: Error, req: Request, res: Response, next: NextFunction) => {
145145
```
146146
</details>
147147

148-
### Blog Quote: "Sometimes lower levels can’t do anything useful except propagate the error to their caller"
148+
### Citation de blog : « Parfois, les niveaux inférieurs ne peuvent rien faire d'utile, sauf propager l'erreur à leur appelant »
149149

150-
From the blog Joyent, ranked 1 for the keywords “Node.js error handling”
150+
Extrait du blog de Joyent classé en 1ere position pour les mots clés “Node.js error handling”
151151

152-
> You may end up handling the same error at several levels of the stack. This happens when lower levels can’t do anything useful except propagate the error to their caller, which propagates the error to its caller, and so on. Often, only the top-level caller knows what the appropriate response is, whether that’s to retry the operation, report an error to the user, or something else. But that doesn’t mean you should try to report all errors to a single top-level callback, because that callback itself can’t know in what context the error occurred
152+
> Vous pouvez finir par gérer la même erreur à plusieurs niveaux de la pile. Cela se produit lorsque les niveaux inférieurs ne peuvent rien faire d'autre d'utile que de propager l'erreur à leur appelant, qui propage l'erreur à son appelant et ainsi de suite. Souvent, seul l'appelant de niveau supérieur sait quelle est la réponse appropriée, que ce soit pour réessayer l'opération, signaler une erreur à l'utilisateur ou autre chose. Mais cela ne signifie pas que vous devez essayer de signaler toutes les erreurs à une seule fonction de rappel de niveau supérieur, car cette fonction de rappel elle-même ne peut pas savoir dans quel contexte l'erreur s'est produite.
153153
154-
### Blog Quote: "Handling each err individually would result in tremendous duplication"
154+
### Citation de blog : « Gérer chaque erreur individuellement entraînerait une énorme duplication »
155155

156-
From the blog JS Recipes ranked 17 for the keywords “Node.js error handling”
156+
Extrait du blog de JS Recipes classé en 17eme position pour les mots clés “Node.js error handling”
157157

158-
> ……In Hackathon Starter api.js controller alone, there are over 79 occurrences of error objects. Handling each err individually would result in a tremendous amount of code duplication. The next best thing you can do is to delegate all error handling logic to an Express middleware…
158+
> ……Uniquement dans le contrôleur api.js de Hackathon Starter, il y a plus de 79 occurrences d'objets d'erreur. Gérer chaque erreur individuellement entraînerait une énorme duplication de code. La meilleure chose à faire est de déléguer toute la logique de gestion des erreurs à un middleware Express
159159
160-
### Blog Quote: "HTTP errors have no place in your database code"
160+
### Citation de blog : « les erreurs HTTP n'ont pas leur place dans le code de votre base de données »
161161

162-
From the blog Daily JS ranked 14 for the keywords “Node.js error handling”
162+
Extrait du blog de Daily JS classé en 14eme position pour les mots clés “Node.js error handling”
163163

164-
> ……You should set useful properties in error objects, but use such properties consistently. And, don’t cross the streams: HTTP errors have no place in your database code. Or for browser developers, Ajax errors have a place in the code that talks to the server, but not code that processes Mustache templates…
164+
> ……Vous devez définir des propriétés utiles dans les objets d'erreur, mais utilisez ces propriétés de manière cohérente. Et ne traversez pas les flux : les erreurs HTTP n'ont pas leur place dans le code de votre base de données. Ou pour les développeurs dans les navigateurs, les erreurs Ajax ont une place dans le code qui parle au serveur, mais pas dans le code qui traite les templates de Mustache

0 commit comments

Comments
 (0)