Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在Javascript中抛出一个异常来停止Javascript执行吗?_Javascript - Fatal编程技术网

我可以在Javascript中抛出一个异常来停止Javascript执行吗?

我可以在Javascript中抛出一个异常来停止Javascript执行吗?,javascript,Javascript,我试图模拟一个问题,即从外部url加载的脚本停止在我的站点上执行任何其他脚本 我试图通过调用一个不存在的函数来模拟这样的问题。我可以在firebug中看到错误,但页面上的不同脚本仍在执行 Java脚本中有不同类型的错误吗?如果是:什么样的错误会停止脚本执行?我只需要Firefox的这个答案 编辑 这个问题很容易被误解,但Rob W明白了:我需要抛出一个异常,该异常需要停止进一步的脚本执行 您可以使用支持以下两个属性的错误对象: name: The name of the error. messa

我试图模拟一个问题,即从外部url加载的脚本停止在我的站点上执行任何其他脚本

我试图通过调用一个不存在的函数来模拟这样的问题。我可以在firebug中看到错误,但页面上的不同脚本仍在执行

Java脚本中有不同类型的错误吗?如果是:什么样的错误会停止脚本执行?我只需要Firefox的这个答案

编辑


这个问题很容易被误解,但Rob W明白了:我需要抛出一个异常,该异常需要停止进一步的脚本执行

您可以使用支持以下两个属性的错误对象:

name: The name of the error.
message: A description of the error.
例如,要停止执行,可以使用:
thrownewerror(“myError”)

Java脚本中有不同类型的错误吗

除了泛型错误构造函数外,JavaScript中还有六个其他核心错误:

请参阅这些错误的详细信息

对标题的回答:
回答“JavaScript中是否存在不同类型的错误**:是,请参阅MDN:
语法错误将阻止执行整个脚本块, 其他错误(类型错误、引用错误)仅在错误发生后停止执行

不同的
块是分别执行的。不能通过在第一个块(演示:)中抛出错误来阻止第二个块的执行


没有通用的“一刀切”方法来停止所有代码的运行。对于单个脚本,您可以使用一些技巧来阻止代码进一步运行

示例1():临时覆盖方法 此方法依赖于该方法来有效地定义常量值。在严格模式下,
var test
声明将抛出类型错误:“test是只读的”。
如果未启用严格模式,将在
test()
处抛出一个类型错误:“test不是函数”(因为我们在脚本4中将
test
定义为常量)

注意:最后一个方法不能正确使用函数声明(请参阅Chrome 17)

使用
try catch finally block


它将完成此操作

使用

throw new Error('stopIt');
这也可以做到:

throw 'Stop It!';

抛出新错误(“发生了不好的事情”)
或者我猜如果我引用了一个外部脚本文件,它会计算不同的脚本块。对吗?@MalcolmFrexner是的。请参阅我的更新答案。没有针对所有情况的单一解决方案,正确的方法因情况而异。但不会像OP所寻找的那样停止,错误只会从executi停止单个脚本块ng,看一下公认的答案
1: <script>window._alert = alert;alert=null;</script>
2: <script>alert('Some code!');confirm('Not executing');</script>
3: <script>alert=_alert;delete window._alert;alert('Done!');</script>
4. <script>Object.defineProperty(window, 'test',{value:null});</script>
5. <script>var test=function(){alert('Test');};test();alert('What?');</script>
throw new Error('stopIt');
throw 'Stop It!';