node.js,捕捉错误所以脚本不会中断?

Posted

技术标签:

【中文标题】node.js,捕捉错误所以脚本不会中断?【英文标题】:node.js, catching errors so script doesn't break? 【发布时间】:2011-12-07 08:52:10 【问题描述】:

我有一个 node.js 脚本,只要发生错误,node.js 就会停止运行并出现错误。

检查 node.js 中的错误的正确方法是什么,以免破坏脚本并导致 node.js 停止?

【问题讨论】:

修复您的错误?在try ... catch 块中包装带有潜在运行时错误的代码?这与任何其他语言/口译员有何不同? @nrabinowitz 所以如果发生错误,使用 try catch 不会破坏脚本?请原谅我缺乏知识,对nodejs非常陌生,所以它超出了我的舒适范围。正在努力学习它。 是的,try ... catchjavascript 中的工作方式与在其他语言中相同,允许您捕获和处理运行时代码中的错误(尽管它对解析时错误没有帮助,例如语法错误)。见developer.mozilla.org/en/JavaScript/Reference/Statements/… 见***.com/questions/7310521/… 【参考方案1】:

不再推荐捕获 uncaughtException。

最好使用domains。强烈建议在处理异常后使用“uncaughtException”或 Domain,重新启动进程。

为了自动重启进程,NodeJS 提供了另一个名为 Cluster 的库,它有助于管理工作线程。

【讨论】:

【参考方案2】:

您可以通过设置以下内容来捕获其他未捕获的错误:

process.on('uncaughtException', function (exception) 
   // handle or ignore error
  );

当然,如果您在永久或节点主管中运行脚本,当您的脚本“停止”时,它会重新启动,这可能会解决您的问题。

【讨论】:

真的很方便...检查我的日志文件开始变得烦人 这还推荐吗?这有副作用吗? Joylet 网站强烈反对这种错误处理方法。 joyent.com/developers/node/design/errors

以上是关于node.js,捕捉错误所以脚本不会中断?的主要内容,如果未能解决你的问题,请参考以下文章

node.js 中的打字稿不会删除 dist 文件夹?

如何在 node.js 中捕获同步函数中的错误?

在 Node.js 中如何停止脚本执行,成功向控制台写入错误消息,然后退出脚本?

Node.js 不会在 uncaughtException 上显示整个错误消息,这可能吗?

调试时“运行脚本”如何在 VS Code 中为 node.js 应用程序工作?

嵌套 Promise 不会将错误传播到 Node.js 中的父 Promise?