抛出异常会杀死节点js中的线程吗?

时间:2016-02-22 12:18:52

标签: node.js

我知道节点js是单线程的,所以如果我写

throw new Error()

在某个方法中,它应该杀死当前线程,所以会关闭整个过程吗?

1 个答案:

答案 0 :(得分:5)

阅读NodeJs documentation about exceptions可以帮助您轻松了解会发生什么。

Error Propagation and Interception部分,您可以阅读以下内容:

  

Node.js支持几种传播和处理机制   应用程序运行时发生的错误。这些错误怎么样   报告和处理完全取决于Error的类型和   被称为API的样式。

回答你的问题:

  

任何使用JavaScript throw机制都会引发异常   必须使用try / catch处理,否则Node.js进程将退出   立即

所以基本上任何未处理的异常都将终止整个节点进程。

这就是像PM2这样的工具启动的地方,每当发生这种情况时重启节点应用程序。

尽管this来自2012年,但我认为这是一篇很好的文章,很容易理解你应该如何处理未捕获的异常