停止在JavaScript中执行
Stopping execution in JavaScript
在Python中,如果我遇到一个错误(例如,函数参数是错误的数据类型,不能操作数据,因为它是格式化错误,等等),我打印一个错误到终端,并运行sys.exit()
来终止它。我还没有学习错误处理,异常处理之类的东西,这就是我使用那个方法的原因。JavaScript错误/异常/任何处理看起来很简单,但将引发或抛出暂停代码的执行?如果没有,那我该怎么做?
假设我只想要一个函数(并且,通过扩展,整个代码集)工作,如果我所处的页面匹配特定的URL。当页面是错误的URL时调用该函数应该将一条消息记录到控制台并停止脚本的执行。我怎么做呢?就在try
区进行测试吗?我是否需要使用一些特殊的语法来处理错误/异常?
当页面是错误的URL时调用该函数应该将一条消息记录到控制台并停止脚本的执行。我怎么做呢?
如果URL不可接受,抛出错误并描述问题。例如
throw new Error("operation x not supported at this page location");
这将导致消息被记录到控制台。确保不存在。在throw
语句周围的catch语句,或者在任何导致它的函数调用周围的catch语句,当抛出错误时停止执行。
正如在注释中提到的,抛出异常不会取消异步操作中尚未发起但尚未完成的回调。
如果在抛出错误时try...catch
语句有效,则继续执行控制catch语句,而不进一步执行throw
语句之后的(其他)代码,也不恢复中间函数调用。
编辑回复评论:
执行throw
语句而没有在函数内部捕获它的函数不会返回。也就是说,在调用代码中对它进行调用后,它不返回值并立即恢复执行。
如果用户写的try块包含对抛出错误的函数的直接或间接调用,则调用堆栈将恢复到执行try块时有效的堆栈。在try块内为函数调用创建的任何堆栈帧都将从调用堆栈中弹出并丢弃,而不再执行被调用的函数。执行在与try块关联的catch块中继续执行,将抛出的错误作为catch参数传递,如果没有提供catch块,则在finally块中继续执行。系统不会自动将try块内抛出的错误记录到控制台。
如果没有找到用户写入的try块,则弹出所有调用堆栈帧,线程死亡并将抛出的错误记录到控制台。因此,在try块之外抛出错误将停止执行而不调用退出函数。
在Python中相当于try...cacth
的似乎是try...except
, raise
语句用于throw
,语法略有不同。
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 在Safari执行javascript之前对其进行修改
- 如何在执行此特定onclick事件时执行JavaScript函数
- 如何在从浏览缓存加载页面时执行javascript
- 使用Rhino和ASE执行Javascript的区别
- 如何在加载完整页面后严格执行javascript代码
- 在动态加载的对话框中执行Javascript
- 在Sinatra中执行Javascript
- 通过AJAX加载页面并执行javascript和CSS
- 适用于多种浏览器的Selenium-需要能够执行javascript的webDriver
- 如何在seleniumwebdriver中执行javascript提示并等待接受输入
- 在window.open()生成的窗口中执行JavaScript
- AJAX成功回调-执行javascript时出现问题
- 通过指令在控制器中执行javascript函数
- 从React Native Android原生地执行JavaScript代码
- iframe未执行Javascript方法(PHP)
- 执行JavaScript代码,使用selenium webdriver或WatiN从控制台获取日志
- 通过web驱动程序异步执行Javascript
- 如何在长时间执行JavaScript期间显示微调器
- 点击困难时执行javascript函数