首页 > 解决方案 > Nodejs 未捕获异常处理

问题描述

在 nodejs 应用程序中处理未捕获异常的首选方法是什么?

仅供参考,我有一个基于 Express 的 REST Api nodejs 服务器。

标签: javascriptnode.js

解决方案


很多人这样做

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

这是不好的。当抛出未捕获的异常时,您应该考虑您的应用程序处于不干净状态。此时您无法可靠地继续您的程序。

让您的应用程序崩溃、记录并重新启动。

process.on('uncaughtException', function (err) {
  console.error((new Date).toUTCString() + ' uncaughtException:', err.message);
  console.error(err.stack);
  // Send the error log to your email
  sendMail(err);
  process.exit(1);
})

让您的应用程序在发生未捕获的异常时崩溃,并使用永远或新贵之类的工具(几乎)立即重新启动它。您可以发送电子邮件以了解此类事件。


推荐阅读