在javascript / nodejs中抛出exception真的那么糟糕?

我正在阅读有关nodejs中的error handling,在阅读本文档时遇到了一些令人不安的事情:

http://nodejs.org/api/domain.html

它说:“通过JavaScript的投掷方式的本质,几乎没有任何方法可以安全地”拾取你离开的地方“,而不会泄露引用,或者创build其他一些不明确的状态。

这听起来非常可怕。 这是真的说任何时候抛出exception,我需要closures线程? 我觉得我在这里错过了一些东西。

在正确的情况下抛出exception没有任何问题。 这是一个有用的工具,可以这样使用。 exception通常不是正常的,预期的,经常使用的代码path的正确工具,因为它们比正常的返回值慢,速度慢得多。 如果性能对您来说很重要,那么对于这些​​types的情况使用返回值通常会更好。

但是,exception可以显着简化您的代码,以防止意外的错误情况或非正常情况,并且在像JavaScript这样的内存pipe理语言中,当抛出exception时,通常不必担心内存泄漏,除非您处于抛出exception时操纵持久的全局状态。 所有局部variables及其引用在超出范围时抛出exception。

exception不会导致内存泄漏或脆弱的状态,除非您的代码写得不好,这与任何其他指示错误条件的方法相同。