javascript - 在 javascript/nodejs 中抛出异常真的那么糟糕吗?

标签 javascript node.js exception

我正在阅读有关 Nodejs 中的错误处理的内容,并且在阅读本文档时遇到了一些令人不安的事情:

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

它说“根据 JavaScript 中 throw 工作方式的本质,几乎没有任何方法可以安全地“从上次停下的地方继续”,而不会泄漏引用或创建其他某种未定义的脆弱状态。”

这听起来非常可怕。这真的是说每当抛出异常时,我都需要关闭线程吗?我觉得我在这里错过了一些东西。

最佳答案

在正确的情况下抛出异常并没有什么问题。它是一个有用的工具并且可以这样使用。异常通常不是正常的、预期的、经常使用的代码路径的正确工具,因为它们很慢,比正常的返回值慢得多。如果性能对您很重要,那么通常最好在这些类型的情况下使用返回值。

但是,异常可以显着简化您针对意外错误情况或非正常情况的代码,并且在像 javascript 这样的内存管理语言中,您通常不必在抛出异常时担心内存泄漏,除非您处于抛出异常时操作持久全局状态的中间。当所有局部变量及其引用超出范围时引发异常时,都会为您清理它们。

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

关于javascript - 在 javascript/nodejs 中抛出异常真的那么糟糕吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15917039/

相关文章:

javascript - 在 node.js 中更改 FCM 通知的颜色和图标

java - Java 中的线程和多播返回异常

java - 扩展异常处理

javascript - 在 Javascript 中返回一个对象并将对象作为参数

javascript - 番茄钟计时器倒计时不会在几秒钟内开始

node.js - 使用node.js服务器发送和接收电子邮件

node.js - ng2-test-seed 无法统计 - 没有这样的文件或目录

java - android 错误处理、断言或异常处理

javascript - 在javascript中将文本设置为dd元素

javascript - 在异步回调中使用 _.after() ,污染数组变量