Kangax博客有一个代码示例:§
try {
(var x = 5); // grouping operator can only contain expression, not a statement (which `var` is)
} catch(err) {
// SyntaxError
}
由于第2行的语法错误会影响“整个代码的语法”,这里catch
语句的重点是什么?
catch
是否能够捕获JavaScript中的语法错误?
答案 0 :(得分:2)
你是对的,javascript解析器会产生错误,所以它永远不会捕获它。
也许他的意图是指出错误的语法(分组运算符只能包含表达式,而不是语句),但try / catch语句是无用的。
此外,catch中的注释//syntaxError
让我们假设catch会做一些事情。
答案 1 :(得分:1)
不,这是正确的。使用try...catch
无助于防止语法错误。
如果存在语法错误而无法解析脚本块,则脚本块根本不会运行。
答案 2 :(得分:1)
语法错误不会被try / catch捕获,因为你不能将变量赋值包装在括号中。