JavaScript 可以捕获语法错误吗?

2024-03-11

MDN 状态 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError:

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

但如果存在语法错误,程序如何才能运行呢?

JavaScript 语法错误如何被发现?


你不能使用try-catch块来处理语法错误,因为语法错误是在代码解析时而不是在代码运行时抛出的。

不过你可以使用window.onerror并发现有一个错误。您必须确保onerror函数是在单独的脚本标签中定义的,而不是在可能存在错误的标签中定义的!

Eg:

这是行不通的,因为抛出错误时脚本尚未开始运行:

<script>
  window.onerror = function (e) {
    console.log('Error: ', e);
  };
  console.log('a'');
</script>

这将起作用:

<script>
  window.onerror = function (e) {
    console.log('Error: ', e);
  };
</script>
<script>
  console.log('a'');
</script>

jsfiddle 演示 https://jsfiddle.net/svn4yha7/1/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 可以捕获语法错误吗? 的相关文章

随机推荐