我有这种模式的代码 - 当 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/