我正在阅读
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 ); }