可以在JavaScript中捕获语句捕获语法错误吗?

时间:2011-04-22 16:56:17

标签: javascript syntax syntax-error

Kangax博客有一个代码示例:§

 try {
    (var x = 5); // grouping operator can only contain expression, not a statement (which `var` is)
  } catch(err) {
    // SyntaxError
  }

由于第2行的语法错误会影响“整个代码的语法”,这里catch语句的重点是什么?

catch是否能够捕获JavaScript中的语法错误?

3 个答案:

答案 0 :(得分:2)

你是对的,javascript解析器会产生错误,所以它永远不会捕获它。

http://jsbin.com/oluje5/edit

也许他的意图是指出错误的语法(分组运算符只能包含表达式,而不是语句),但try / catch语句是无用的。

此外,catch中的注释//syntaxError让我们假设catch会做一些事情。

答案 1 :(得分:1)

不,这是正确的。使用try...catch无助于防止语法错误。

如果存在语法错误而无法解析脚本块,则脚本块根本不会运行。

答案 2 :(得分:1)

语法错误不会被try / catch捕获,因为你不能将变量赋值包装在括号中。