JavaScript嵌套尝试异常

时间:2015-03-08 17:20:53

标签: javascript exception exception-handling

我正在阅读JavaScript exceptions

  

您可以嵌套一个或多个try ... catch语句。如果内心   try ... catch语句没有catch块,封闭   尝试... catch语句的catch块被检查匹配。

我认为我理解正确,并编写了如下测试代码:

try {

    try {
        throw "error";
    }

} catch( e ) {

    console.log( e );

}

但得到了这个错误:

Uncaught SyntaxError: Missing catch or finally after try

我清楚地知道我错过了一个问题或最后但是JavaScript文档说我的代码应该有效还是我误解了?

2 个答案:

答案 0 :(得分:11)

引用的文字非常具有误导性,因为它说"如果一个内部的try..catch没有一个捕获块"这没有任何意义。它应该只是"如果内部try没有......"。

在JavaScript中,您不能自己拥有try;它 catchfinally或两者。所以引用的场景是指{a} try/catch包含 try/finally (而非另一个try/catch):

try {
    try {
        throw "error";
    }
    finally {
    }
} catch( e ) {
    console.log( e );
}

答案 1 :(得分:2)

这里指定:(https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/try...catch

  

try语句包含一个try块,其中包含一个或多个   语句,和至少一个catch子句或finally子句,或   都。也就是说,try语句有三种形式: