抛出exception杀死线程在节点JS?

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

throw new Error() 

在方法的某处,它应该杀死当前的线程,那么会closures整个过程?

阅读有关exception的NodeJs 文档可以帮助您很容易地理解发生的情况。

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

Node.js支持多种机制来传播和处理应用程序运行时发生的错误。 如何报告和处理这些错误完全取决于错误的types和被调用的API的风格。

并回答你的问题:

任何使用JavaScript抛出机制都会引发一个必须使用try / catch处理的exception,否则Node.js进程将立即退出。

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

这就是PM2这样的工具,在发生这种情况时重新启动节点应用程序。

虽然这是从2012年开始的,但我认为这是一篇不错的文章,而且很容易理解如何处理未捕获的exception