如何使用NodeJS捕获全局错误

问题描述 投票:3回答:2

我得到了一个未处理的错误,但不知道它来自哪里。我的应用程序在不同的方法中有几个http.request(选项,回调).end(),回调的陷阱是“uncaughtException”和“error”。我想知道我的哪些方法引发了这个问题。以下是我得到的错误。这是随机的。任何想法如何追踪这个?我希望有一些全局方法来捕获未处理的错误。

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: read ECONNRESET
    at exports._errnoException (util.js:746:11)
    at TCP.onread (net.js:559:26)
node.js unhandled-exception
2个回答
6
投票

ECONNRESET表示TCP连接的另一端被中止。您可以查看服务器日志,但由于它是随机时间,这使我认为服务器变得过载并杀死了一些连接。

如果您在流程中的任何一点开始流程,请尝试以下操作:

process.on('uncaughtException', function (err) {
  console.error(err.stack);
  console.log("Node NOT Exiting...");
});

2
投票

附上一个

request.on('error', function(err) {
    // Handle error
});

对你的要求。

您还可以捕获该过程的未捕获错误:

process.on('uncaughtException', function(err) {
  console.log('Caught exception: ' + err);
});

这个错误,因为它读取状态连接被重置,所以它绝对是其中一个请求。

© www.soinside.com 2019 - 2024. All rights reserved.