1

このパターンのコードがあります - 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 自体の実行中にどこかから例外が発生した場合は呼び出さないからです。

では、このパターンにはどのようなアプローチをお勧めしますか?

4

1 に答える 1

0

まず、 try...catch ブロックの説明を確認することをお勧めします(ブラウザ JS 用であることは気にしないでください)。next()あなたの場合、最終ブロック内に関数を配置することは可能ですか? はい、そこに配置して、ブロック全体try...catchを別のブロック内に入れることをお勧めしtry...catchます。

ファイナライズでまだ例外をスローすることはお勧めできません。try...catch正しい場所で使用していますか?fn内部で実行する(または関数内で wxception を処理する)方がよいのではないerrorでしょうか?

于 2013-01-30T08:32:05.050 に答える