我可以在Node.js的javascript中使用catch(如果是instanceof SyntaxError)吗?

low*_*key 10 javascript try-catch try-catch-finally node.js

我在MDN上读到了try catch(e,如果是instanceof ...)块,但是,在Node.js中尝试它时,我得到一个SyntaxError:Unexpected token if.

如果这不起作用,是否有另一种方法来捕获特定的异常,而不是可能发生的一切?

Ber*_*rgi 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
}]
Run Code Online (Sandbox Code Playgroud)