JavaScript嵌套尝试异常

前端之家收集整理的这篇文章主要介绍了JavaScript嵌套尝试异常前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在阅读 JavaScript exceptions

You can nest one or more try…catch statements. If an inner
try…catch statement does not have a catch block,the enclosing
try…catch statement’s catch block is checked for a match.

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

try {

    try {
        throw "error";
    }

} catch( e ) {

    console.log( e );

}

但得到了这个错误

未捕获的SyntaxError:缺少捕获或最后尝试

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

解决方法

引用的文字非常具有误导性,因为它说“如果内部try..catch没有一个catch块”这没有任何意义.它应该只是“如果一个内在的尝试没有……”.

在JavaScript中,你不能只是自己尝试;它必须有一个捕获,最后,或两者.所以引用的场景是这样的是包含try / finally(而不是另一个try / catch)的try / catch:

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

猜你在找的JavaScript相关文章