Vorwort
In Node.js stürzt der gesamte Vorgang, wenn ein Fehler in einer Rückruffunktion auftritt, die Ausführung des nachfolgenden Codes aus.
Node.js behandelt auf diese Weise, denn wenn ein ungewöhnlicher Fehler auftritt, ist der Status des Prozesses ungewiss. Danach wird es nicht richtig funktionieren. Wenn der Fehler nie verarbeitet wird, werden unerwartete Fehler geworfen, was dem Debuggen nicht förderlich ist.
Es gibt zwei Hauptmethoden, um eine durch Fehler verursachte Prozessblockierung zu verhindern:
1. Versuch
try-catch ermöglicht der Code die Ausführung fort und ermöglicht die Ausführung:
Zum Beispiel:
Wenn die Funktion einen Fehler auslöst, wird der Code nicht mehr ausgeführt:
(function () {var a = 0; a (); console.log ("hierher kommen."); // nicht ausgeführt}) (); Nach der Verwendung von try-catch zur Fehlerverarbeitung kann der Code weiterhin ausgeführt werden:
(function () {var a = 0; try {a ();} catch (e) {console.log (e);} console.log ("hierher kommen"); // hier.}) ();Try-Catch kann zukünftige Funktionsfunktionen für Ausführungsfunktionen nicht erfassen
Es ist unmöglich, Fehler zu erfassen, die von Funktionen geworfen werden, die nur in Zukunft ausgeführt werden. Dadurch wird eine ungewöhnliche Ausnahme direkt ausgelegt, und catch -Code -Block wird niemals ausgeführt:
try {setTimeout (function () {Neuen Fehler werfen ("hier");}, 10);} catch (e) {console.log (e);}Aus diesem Grund werden in Node.js die Bohnensprossen bei jedem Schritt korrekt behandelt.
Fügen Sie UncatchException -Handler hinzu
Wenn ein uncatchException hinzugefügt wird, wird der Prozess nicht beendet, wenn die Funktion einen Fehler auslöst.
process.on ("uncatchException", function (e) {console.log (e); process.exit (1);});Zusammenfassen
Das obige ist alle Möglichkeiten, um eine Prozessperrung durch Fehler in Node.js. zu verhindern. Ich hoffe, es wird hilfreich für alle, die node.js.