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.

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

  1. try {
  2.  
  3. try {
  4. throw "error";
  5. }
  6.  
  7. } catch( e ) {
  8.  
  9. console.log( e );
  10.  
  11. }

但得到了这个错误

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

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

解决方法

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

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

  1. try {
  2. try {
  3. throw "error";
  4. }
  5. finally {
  6. }
  7. } catch( e ) {
  8. console.log( e );
  9. }

猜你在找的JavaScript相关文章