Préface
Dans Node.js, lorsqu'une erreur se produit dans une fonction de rappel, l'ensemble du processus se bloquera, affectant l'exécution du code ultérieur.
Node.js gère de cette façon car lorsqu'une erreur non apprise se produit, l'état du processus est incertain. Cela ne fonctionnera pas correctement après cela. Si l'erreur n'est jamais traitée, des erreurs inattendues seront lancées, ce qui n'est pas propice au débogage.
Il existe deux façons principales de prévenir le blocage des processus causés par les erreurs:
1. Try-capch
try-catch permet une capture d'exception et permet au code de continuer à exécuter:
Par exemple:
Lorsque la fonction lance une erreur, le code cesse d'exécuter:
(function () {var a = 0; a (); console.log ("Get Here."); // non exécuté}) (); Après avoir utilisé try-catch pour le traitement des erreurs, le code peut toujours être exécuté:
(function () {var a = 0; try {a ();} catch (e) {console.log (e);} console.log ("get Here."); // Get Here.}) ();TRY-Catch ne peut pas attraper les futures erreurs de fonction d'exécution
Il est impossible de capturer des erreurs lancées par des fonctions qui ne sont exécutées qu'à l'avenir. Cela lancera directement une exception non revêtue et catch ne sera jamais exécuté:
try {setTimeout (function () {lance une nouvelle erreur ("ici");}, 10);} catch (e) {console.log (e);}C'est pourquoi dans Node.js, les germes de haricots sont correctement gérés à chaque étape.
Ajouter un gestionnaire UNCATCHException
Si un processeur uncatchException est ajouté, le processus ne sort pas lorsque la fonction lance une erreur.
process.on ("UncatchException", fonction (e) {console.log (e); process.exit (1);});Résumer
Ce qui précède est toutes les façons d'éviter le blocage des processus par des erreurs dans Node.js. J'espère que cela sera utile à tous ceux qui utilisent Node.js.