当出现javascript运行时错误时会发生什么

What happens when there is a javascript runtime error?

本文关键字:什么 运行时错误 javascript      更新时间:2023-09-26

我了解导致运行时错误的原因。我想了解浏览器之后的行为。

错误发生前附加的事件处理程序是否仍然有效?

如果一个加载异步的脚本在运行时出错后完成,它能执行吗?

基本上,运行时错误的灾难性有多大?

未捕获的运行时错误只会停止当前执行,可能是

  • 脚本的执行
  • 事件处理程序的调用

假设您在处理事件时出现运行时错误,如果您的事件处理程序修改了某些用户变量,那么您可能遇到的唯一问题(除了没有真正处理事件之外)就是用户变量的状态不一致。除此之外,其他事件处理程序不会受到影响。

因此,它通常可以被认为是非灾难性的(我想我不必记住,无论如何,修复错误是一种很好的做法,而在控制台中充斥错误并不是一件好事)。

您可以使用try/catch/finally块。使用catch块,您可以在错误内部导航,当发生运行时错误或发生非法操作时,它将运行。访问此链接,这里有一些关于try/catch/finally的更多信息http://www.javascriptkit.com/javatutors/trycatch.shtml

运行时错误可能是灾难性的,这取决于它发生在哪里以及当它发生时代码段会做什么。通过这种方式,你可以崩溃所有的应用程序或只是停止一些插件。

每当打开网页时,所有脚本都会开始加载。如果任何脚本遇到任何运行时错误,则该脚本的执行将停止。这意味着浏览器将不会执行脚本中的任何进一步语句。您可以在浏览器的控制台窗口中找到这些错误。但是,您可以使用try-catch块来处理发生的异常。例如,考虑以下脚本:

<script>
    var x=10, y=0;
    /*...............
    .................
    perform some other tasks here
    This will execute with no error
    .................
    ................*/
    var z=x/y; //here error occur
//below any statements will never execute.
{
    /*................
    ..................
    some operations
    this block will not execute because a runtime error occurs above.
    ..................
    ................*/
}
</script>

由于发生运行时错误,将不会执行语句var z=x/y;之后的任何其他语句。