node.js - 这种 Node.js 异常处理方法的最佳实践?

标签 node.js exception

我有这种模式的代码 - 当 fn() 成功时,或者当 fn() 执行出现异常时,我需要调用 next() 。

try {
    fn.call(obj, a, b, c, function(error, next) {
           ...
           next();
    });
} catch (ex) {
    // log. 
    next();  // This is under question.
}

异常不仅可能发生在 fn 中,也可能发生在 next() 中的任何位置。我不应该从 catch 中调用 next() ,因为如果异常来自 next 本身执行期间的某个地方,我就不会调用 next() 。

那么对于这种模式,你们推荐什么方法呢?

最佳答案

首先我推荐你看一下try...catch block description (别介意它是针对浏览器JS的)。在您的情况下,是否可以将 next() 函数放置在 finally block 内?是的,我建议将其放在那里并将整个 try...catch block 放入另一个 try...catch block 中。

在终结时仍然抛出异常不是一个好的做法。您确定在正确的位置使用了 try...catch 吗?也许最好在 fn 内部执行(或在 error 函数内部处理 wxception)?

关于node.js - 这种 Node.js 异常处理方法的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14598145/

相关文章:

javascript - Node.js、TypeScript、JavaScript 和 Angular 之间的连接

node.js - npm 警告 npm npm 不支持 Node.js

node.js - 如何在使用 yarn 安装 npm 依赖项时忽略不兼容的引擎 "node"错误?

c++ - catch 站点异常的常见用法是什么?

android - 使用未捕获的异常处理程序时应用程序崩溃导致应用程序停止

javascript - 在 Node.js 中与特定用户聊天

node.js - node-ffi - EnumWindows 的回调提取

c++ - 根据当前标准,关闭 C++ 中的异常会导致未定义的行为吗?

java - JVM如何保证finally block 的执行?

exception - 在 Scala.js 中抛出原生 JS 异常