我需要在JavaScript中“抛出”之后“返回”吗?


96

Error从我的方法中抛出了一个我想尽早退出的方法,如下所示:

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

我需要return;在我后面写个声明throw吗?暂时对我有效。如果它是多余的,我宁愿不放进去,但是我不确定什么不同的浏览器可能会做。

Answers:


160

您不需要在return后面放置语句throwreturn因为立即引发异常,将控制权移交给调用者,因此永远不会到达该行。


1
“立即引发异常将控制权交还给调用者” ...除非在调用堆栈的任何路径中都没有CATCH来处理引发的错误。
Mahesh

12
@Mahesh我不确定您的意思是“除非”-堆栈中throw发生的任何CATCH 都是“调用方”的一部分
Rob M.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.