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 ... catch
在 javascript 中的工作方式与在其他语言中相同,允许您捕获和处理运行时代码中的错误(尽管它对解析时错误没有帮助,例如语法错误)。见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 中如何停止脚本执行,成功向控制台写入错误消息,然后退出脚本?
Node.js 不会在 uncaughtException 上显示整个错误消息,这可能吗?