NodeJS进程' uncaughtException'在某些情况下不工作

时间:2017-01-24 06:27:06

标签: node.js events asynchronous error-handling process

使用

时,我的本地nodeJS项目运行正常
process.on('uncaughtException', function (err) {
  console.log('*********some  code*************');
});

当发生任何同步或任何异步错误时,会调用此代码段。

但是当我将我的项目放到其他两个Linux主机上时:

  • Ubuntu 14.04.3 LTS,
  • Ubuntu 14.04 LTS。

一个工作正常,但是当错误发生并且直接项目关闭时,另一个永远不会被调用。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我会推荐您Node.js documentation正确使用uncaughtException事件。

最重要的部分是:" 在'uncaughtException' "之后恢复正常操作是不安全的。您在此处的代码示例显示您正在记录某些内容,但不会退出该过程。

在您的其他系统上可能由于异常而导致进程死亡,可能是因为本机模块存在分段错误或其他进程结束崩溃。

考虑在发生异常的位置捕获异常,并使用uncaughtException作为记录致命错误的最后手段,同时切换到process.exit(1)以使用错误代码结束进程。