このパターンのコードがあります - fn() が成功したとき、または fn() の実行で例外が発生したときの両方で next() を呼び出す必要があります。
try {
fn.call(obj, a, b, c, function(error, next) {
...
next();
});
} catch (ex) {
// log.
next(); // This is under question.
}
例外は fn だけでなく、next() のどこでも発生する可能性があります。next() を catch 内から呼び出すべきではありません。なぜなら、next 自体の実行中にどこかから例外が発生した場合は呼び出さないからです。
では、このパターンにはどのようなアプローチをお勧めしますか?