我有这种模式的代码 - 我需要在fn()成功时调用next(),或者在fn()的执行中有异常。
try {
fn.call(obj, a, b, c, function(error, next) {
...
next();
});
} catch (ex) {
// log.
next(); // This is under question.
}
异常不仅可以在fn中发生,也可以在next()中发生。我不应该从catch中调用next(),因为如果异常来自下一个执行期间的某个地方,我不会这样做。
那么你们对这种模式建议采用什么方法?
答案 0 :(得分:0)
首先,我建议您查看try...catch block description(不要介意它适用于浏览器JS)。在您的情况下,是否可以将next()
函数放在finally块中?是的,我建议将其放在那里并将整个try...catch
块放在另一个try...catch
块中。
在最终确定中仍然抛出异常并不是一个好习惯。您确定在正确的位置使用try...catch
吗?也许最好在fn
内部(或在error
函数内部处理wxception)?