JavaScript try catch 语句在我的代码中不起作用


  1. 我收到"未捕获的语法错误:无效或意外的令牌"错误。
  2. 并尝试用"尝试~捕获"来捕获,但它不起作用。

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

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

此错误在代码的解析或验证时检查。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);
}
}

我想推荐你阅读:

  • try...catch声明

  • 异常处理状态

  • 语法错误

相关内容

最新更新