13

MDNでtry catch(e if e instanceof ...) ブロックについて読みましたが、Node.js で試してみると SyntaxError: Unexpected token if.

これが機能しない場合、発生する可能性のあるすべての例外ではなく、特定の例外をキャッチする別の方法はありますか?

4

1 に答える 1

17

リンクしたMDNドキュメントを引用するには:

注:この機能はECMAScript仕様の一部ではありません。

JavaScript 1.5、NES 6.0:複数のcatch句を追加しました(Netscape拡張機能)。

だから:いいえ、これはNode.jsでは不可能です。ただし、もちろん、回避策として次の構文を使用できます。

try {
    try_statements
} catch (e) {
    if (e instanceof ...)
        catch_statements_1
    else if (e instanceof ...)
        catch_statements_2
    else
        throw e;
} [finally {
    finally_statements
}]
于 2012-05-07T18:15:10.333 に答える