Prefácio
No Node.js, quando ocorre um erro em uma função de retorno de chamada, todo o processo trava, afetando a execução do código subsequente.
O Node.js lida dessa maneira porque, quando ocorre um erro não capturado, o status do processo é incerto. Não funcionará corretamente depois disso. Se o erro nunca for processado, erros inesperados serão lançados, o que não é propício à depuração.
Existem duas maneiras principais de impedir o bloqueio de processos causado por erros:
1. Try-capath
try-catch permite a captura de exceção e permite que o código continue a execução:
Por exemplo:
Quando a função lança um erro, o código para de executar:
(function () {var a = 0; a (); console.log ("obtenha aqui."); // não executado}) (); Depois de usar try-catch para processamento de erros, o código ainda pode ser executado:
(function () {var a = 0; try {a ();} catch (e) {console.log (e);} console.log ("Get aqui."); //, chegue aqui.}) ();Try-Catch não pode capturar erros futuros de função de execução
É impossível capturar erros lançados por funções que são executadas apenas no futuro. Isso lançará uma exceção não capturada diretamente, e catch nunca será executado:
tente {setTimeout (function () {tire novo erro ("aqui");}, 10);} catch (e) {console.log (e);}É por isso que no Node.js, os brotos de feijão são tratados corretamente em cada etapa.
Adicione o manipulador de UncatchException
Se um processador uncatchException for adicionado, o processo não sairá quando a função lançar um erro.
process.on ("UncatchException", function (e) {console.log (e); process.exit (1);});Resumir
O exposto acima é todas as maneiras de impedir o bloqueio de processos por erros no Node.JS. Espero que seja útil para todos que usam o Node.JS.