我知道节点js是单线程的,所以如果我写
throw new Error()
在某个方法中,它应该杀死当前线程,所以会关闭整个过程吗?
答案 0 :(得分:5)
阅读NodeJs documentation about exceptions可以帮助您轻松了解会发生什么。
在Error Propagation and Interception部分,您可以阅读以下内容:
Node.js支持几种传播和处理机制 应用程序运行时发生的错误。这些错误怎么样 报告和处理完全取决于Error的类型和 被称为API的样式。
回答你的问题:
任何使用JavaScript throw机制都会引发异常 必须使用try / catch处理,否则Node.js进程将退出 立即
所以基本上任何未处理的异常都将终止整个节点进程。
这就是像PM2这样的工具启动的地方,每当发生这种情况时重启节点应用程序。
尽管this来自2012年,但我认为这是一篇很好的文章,很容易理解你应该如何处理未捕获的异常