停止在JavaScript中执行

时间:2016-09-14 21:49:11

标签: javascript exception-handling

在Python中,如果我遇到错误(例如,函数参数是错误的数据类型,因为格式错误等而无法对数据进行操作),我会向终端输出错误并运行{{1杀死它。我还没有学习错误处理,异常处理或其他什么,所以这就是我使用该方法的原因。 JavaScript错误/异常/任何处理看起来都很简单,但会引发或抛出代码的执行?如果没有,那我该怎么做呢?

假设我只想要一个函数(并且,通过扩展,整个代码集),如果我所在的页面与特定的URL匹配。当页面是错误的URL时调用该函数应该将消息记录到控制台并停止脚本的执行。我怎么做?只是在sys.exit()区块进行测试?我是否需要使用一些用于处理错误/异常的特殊语法?

1 个答案:

答案 0 :(得分:0)

  

当页面错误的URL时调用该函数应该将消息记录到控制台并停止脚本的执行。我怎么做?

如果网址不可接受,请抛出一个error,其中包含问题说明。 e.g。

throw new Error("operation x not supported at this page location");

这会导致消息被记录到控制台。确保围绕throw语句的控制try...catch语句的缺席,或者在导致它的任何函数调用周围,确保在抛出错误时停止执行。

如评论中所述,抛出异常不会取消尚未启动但尚未完成的异步操作的回调。

如果在抛出错误时try...catch语句生效,则执行将继续执行控制catch语句,而无需在throw语句之后执行(其他)代码,并且不会恢复中间函数调用

<小时/> 编辑回复评论:

执行throw语句而不将其捕获到函数内的函数不会返回。也就是说它不会返回一个值,并在调用代码后对它进行调用后立即恢复执行。

如果用户编写的try块包围对抛出错误的函数的直接或间接调用,则调用堆栈将恢复为执行try块时生效的调用堆栈。为try块内的函数调用创建的任何堆栈帧都会从调用堆栈中弹出并丢弃,而无需进一步执行被调用的函数。执行将使用与try块关联的catch块恢复,将错误作为catch参数传递,或者如果未提供catch块则传递给finally块。 系统不会自动将try块中抛出的错误记录到控制台。

如果没有找到用户编写的try块,则弹出所有调用堆栈帧,线程终止并且抛出的错误将记录到控制台。因此,在try块之外抛出错误会在不调用exit函数的情况下停止执行。

Python中等效的try...cacth似乎是try...exceptraise语句用于throw,语法略有不同。