How to catch a global error with NodeJS

谁说我不能喝 提交于 2019-12-29 07:48:25

问题


I am getting an unhandled error but not sure where it's coming from. My app has several http.request(options, callback).end() in different methods, with the callback's trapping "uncaughtException" and "error". I'd like to know which of my methods initiated this issue. Below is the error I get. It is random. Any ideas how to track this down? I was hoping for some global way of trapping unhandled errors.

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)

回答1:


ECONNRESET means that the other side of the TCP connection is aborted. You could look at the server logs, but since it was random times this makes me think that the server becomes overloaded and kills a few connections.

If you're starting a process at any point in the process try the below:

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



回答2:


attach a

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

to your requests.

You can also catch uncaught errors for the process:

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

This error as it reads states the connection was reset, so its definitely one of the requests.



来源:https://stackoverflow.com/questions/34186146/how-to-catch-a-global-error-with-nodejs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!