在JavaScript中的`throw`之后我需要`return`吗?

时间:2014-09-26 19:44:30

标签: javascript exception error-handling

我从我的方法中抛出一个Error,我希望提前退出,如下所示:

// No route found
if(null === nextRoute) {
    throw new Error('BAD_ROUTE');
}

我是否需要在return;之后加上throw声明?它现在对我有用。如果它是多余的我宁愿不把它放进去,但我不能确定不同的浏览器会做什么。

2 个答案:

答案 0 :(得分:123)

您不需要在return之后添加throw语句,永远不会达到return行,因为抛出异常会立即将控制权交还给来电者。

答案 1 :(得分:0)

throw 语句抛出用户定义的异常。 当前函数的执行将停止(不会执行 throw 之后的语句),并将控制权传递给调用堆栈中的第一个 catch 块。如果调用者函数之间不存在 catch 块,则程序将终止。