var customError = function (){
try{
setTimeout(function(){
console.log("time out called");
throw new Error ("Error in call back");
},5000);
}catch(e){
console.log(e);
}
}
customError();
process.on('uncaughtException', function (err) {
console.log(err);
})
我读了一些博客,发现我们可以使用“uncaughtException”进程事件来处理回调中发生的错误。但另一方面,我读取而不是“uncaughtException”你应该使用promise库。但是“uncaughtException”事件对我很好。我只是想知道处理回调错误是最佳做法吗?
答案 0 :(得分:1)
你不应该处理' uncaughtException'因为你不知道它来自哪里(你的应用程序或NodeJS)。
未处理的异常意味着您的申请 - 以及扩展 Node.js本身 - 处于未定义状态。盲目恢复意味着 任何事情都可能发生。
https://nodejs.org/api/process.html#process_event_uncaughtexception
上有一篇关于处理NodeJS错误的文章答案 1 :(得分:0)
这是@Josnidhin的回答版本。
通常,您应该在发生异常时将异常处理或将其传递给被调用者。传递给被叫者你可以使用
err
作为第一个参数(Node.js社区接受的标准)传递给回调函数。 [回调模式] 你还应该订阅事件uncaughtException
,以便知道发生了一些糟糕的事情,现在服务器可能会进入一些不一致的状态。在这里,您可能希望将邮件程序发送给管理员,说明发生异常的详细信息或重新启动服务器本身。