⊗jsSpACEx 158 of 294 menu

Exceptions dans les callbacks asynchrones en JavaScript

Supposons que si un numéro d'élément de tableau inexistant soit passé en paramètre à make - ce soit une situation exceptionnelle. Comme vous le savez déjà, les exceptions survenues à l'intérieur d'une fonction asynchrone ne peuvent pas être attrapées via try-catch. Dans notre cas, l'exception survenue à l'intérieur de make ou du callback ne sera pas attrapée :

try { make(10, function(res) { console.log(res); }); } catch(err) { // ne sera pas attrapée }

Dans l'approche par callbacks, on travaille avec les exceptions de la manière suivante : on envoie le résultat dans le premier paramètre du callback, et l'erreur dans le second. Dans ce cas, la gestion des erreurs se passe de la manière suivante :

make(10, function(res, err) { if (!err) { console.log(res); // aucune erreur, affichons le résultat } else { console.log(err); // une erreur est survenue, affichons son texte } });

Reconvertissons le code de notre fonction make conformément à ce qui a été décrit :

function make(num, callback) { setTimeout(function() { let arr = [1, 2, 3, 4, 5]; let err; if (arr[num] === undefined) { err = 'elem not exists'; // texte de l'erreur } else { err = null; // pas d'erreur } callback(arr[num], err); }, 3000); }
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser