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 回答