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