-2
  1. I got "Uncaught SyntaxError: Invalid or unexpected token" error.
  2. And try to catch with 'try ~ catch' but it's not working.

    function a(){
      try{
       var img1 = "=="";  <#-- it occurs error -->
      }catch (e) {
        console.log("image error:" + e.message);
      }
    }
    
4

1 回答 1

4

您有语法错误,您无法捕获语法错误。

在解析或验证代码时会检查此错误。该try .. catch语句在运行时执行。正因为如此,它没有发挥作用。

如果您评估或解析(例如 JSON)您的代码,您只能处理语法错误。或者您可以创建如下语法错误:

try {
  throw new SyntaxError('Hello', 'someFile.js', 18);
} catch (e) {

  console.log(e.message);  // "Hello"
  console.log(e.name);  // "SyntaxError"
}

对于已eval处理或自行创建的语法错误:

当 JavaScript 引擎在解析代码时遇到不符合语言语法的标记或标记顺序时,将引发 SyntaxError。

来自MDN

尝试这个:

    function a(){
      try{
       var img1 = "==\"";
       //but you have to put some error here without parsing or validation error of your code.
      }catch (e) {
        console.log("image error:" + e.message);
      }
    }

我想推荐你阅读:

于 2018-06-26T08:23:09.563 回答