2

我在我的网站上使用了很多 javascript,当然有时在构建代码和出现错误时会出现问题。有时页面遇到错误,所有脚本都停止工作。如果在页面加载期间触发错误,则尤其如此。有时一些错误似乎并没有阻止页面运行更多脚本。

然后有时我查看网络上的某些页面,按 F12,我看到该页面有 5-10 个 javascript 错误,但看起来仍然正常工作。

是什么让一些 javascript 错误致命而另一些可以恢复?

谢谢。

4

2 回答 2

4

当块在加载时由浏览器评估时,除了解析它们之外,<script>实际上还执行了代码。因此,该过程中的异常会导致整个脚本块被中止。如果后续代码依赖于应该由此类脚本建立的全局符号,但不是由于错误,其他脚本也可能会失败。

但是,处理某些事件期间的错误只会导致该事件循环中止。因此,“单击”处理程序中的代码错误仅意味着单击某些内容时应该发生的某些事情根本不会发生。否则,页面可以继续正常工作。

于 2012-06-13T16:55:51.893 回答
3

解析错误是致命的,即使是在一个try..catch块内,因为它无法可靠地找到try.

其他错误是可捕获的。在try..catch块内,catch将接收有关错误的信息。在出现错误情况后,该块中的其余代码将不可靠并且可能不安全。然而,其他<script>标签是独立的,因此可以毫无问题地运行。如果有帮助,您可以想象<script>标签意味着以下内容:

<script>
    try { // implied
        // your code here
    } catch(e) {throw e;} // implied
</script>
于 2012-06-13T16:56:39.897 回答