En Node.js, cuando se produce un error en una función de devolución de llamada, todo el proceso se bloqueará, afectando la ejecución del código posterior.
Node.js se maneja de esta manera porque cuando ocurre un error no abierto, el estado del proceso es incierto. No funcionará correctamente después de eso. Si el error nunca se procesa, se lanzarán errores inesperados, lo que no es propicio para la depuración.
Hay dos formas principales de evitar el bloqueo de procesos causados por errores:
1. Captura de try
Try-Catch permite la captura de excepciones y permite que el código continúe la ejecución:
Por ejemplo:
Cuando la función arroja un error, el código deja de ejecutar:
(function () {var a = 0; a (); console.log ("obtener aquí"); // no ejecutado}) ();Después de usar Try-Catch para el procesamiento de errores, el código aún se puede ejecutar:
(function () {var a = 0; try {a ();} catch (e) {console.log (e);} console.log ("Get aquí."); // get aquí.}) ();Try-Catch no puede atrapar errores de función de ejecución futuros
Es imposible capturar errores lanzados por funciones que solo se ejecutan en el futuro. Esto lanzará una excepción no captura directamente, y el bloque de código de captura nunca se ejecutará:
Pruebe {setTimeOut (function () {tire nuevo error ("aquí");}, 10);} catch (e) {console.log (e);}Es por eso que en Node.js, los brotes de frijoles se manejan correctamente en cada paso.
Agregar manejador UncatchException
Si se agrega un procesador de UncatchException, el proceso no saldrá cuando la función arroje un error.
process.on ("UncatchException", function (e) {console.log (e); process.exit (1);});Lo anterior es el método para prevenir el bloqueo de procesos en Node.js causados por errores introducidos por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!