我正在阅读有关 Nodejs 中的错误处理的内容,并且在阅读本文档时遇到了一些令人不安的事情:
http://nodejs.org/api/domain.html
它说“根据 JavaScript 中 throw 工作方式的本质,几乎没有任何方法可以安全地“从上次停下的地方继续”,而不会泄漏引用或创建其他某种未定义的脆弱状态。”
这听起来非常可怕。这真的是说每当抛出异常时,我都需要关闭线程吗?我觉得我在这里错过了一些东西。
最佳答案
在正确的情况下抛出异常并没有什么问题。它是一个有用的工具并且可以这样使用。异常通常不是正常的、预期的、经常使用的代码路径的正确工具,因为它们很慢,比正常的返回值慢得多。如果性能对您很重要,那么通常最好在这些类型的情况下使用返回值。
但是,异常可以显着简化您针对意外错误情况或非正常情况的代码,并且在像 javascript 这样的内存管理语言中,您通常不必在抛出异常时担心内存泄漏,除非您处于抛出异常时操作持久全局状态的中间。当所有局部变量及其引用超出范围时引发异常时,都会为您清理它们。
异常不会导致内存泄漏或脆弱状态,除非您的代码编写得不好,这与指示错误条件的任何其他方法相同。
关于javascript - 在 javascript/nodejs 中抛出异常真的那么糟糕吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15917039/