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

发布于 2024-11-02 18:38:46 字数 392 浏览 5 评论 0原文

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

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

第2行的语法错误会影响“整个代码的语法”,这里的catch语句有什么意义?

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

Kangax blog has a code example: §

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

Since the syntax error at line 2 would affect the "syntax of the entire code", what's the point of the catch statement here?

Is catch able to catch syntax errors in JavaScript?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

知足的幸福 2024-11-09 18:38:46

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

http://jsbin.com/oluje5/edit

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

此外,catch 中的注释 //syntaxError 让我们假设 catch 会执行某些操作。

You are right, javascript parser will generate an error, so it will never catch it.

http://jsbin.com/oluje5/edit

Maybe his intention was to point out the wrong syntax (grouping operator can only contain expression, not a statement), but the try / catch statement is useless.

Moreover, the comment //syntaxError inside catch let suppose that the catch will do something.

洋洋洒洒 2024-11-09 18:38:46

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

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

No, that is correct. Using a try...catch doesn't help against syntax errors.

The script block won't run at all if there is a syntax error keeping it from being parsed.

怪我鬧 2024-11-09 18:38:46

try/catch 不会捕获语法错误,因为您不能像这样将变量赋值包含在括号中。

Syntax errors wont be caught by try/catch, as you can't wrap variable assignments in brackets like that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文