【问题标题】:NodeJS process 'uncaughtException' not working in some circumstancesNodeJS 进程“uncaughtException”在某些情况下不起作用
【发布时间】:2017-01-24 06:27:05
【问题描述】:

我有一个 nodeJS 项目在使用时在我的本地运行良好

process.on('uncaughtException', function (err) {
  console.log('*********some  code*************');
});

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

但是当我把我的项目放到另外两个 Linux 主机上时:

  • Ubuntu 14.04.3 LTS,
  • Ubuntu 14.04 LTS。

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

有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

    关于正确使用uncaughtException 事件,我建议您参考Node.js documentation

    最重要的部分是:“在 'uncaughtException' 之后恢复正常操作是不安全的。” 您在此处的代码示例表明您正在记录某些内容,但没有退出进程。

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

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

    【讨论】:

    • 谢谢!但是,如果一个uncaughtException 不能被调用,我不能做任何优雅的关闭过程,它只是直接关闭而不记录或注意到。
    猜你喜欢
    • 2018-11-28
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 2017-06-29
    • 1970-01-01
    相关资源
    最近更新 更多