2014-09-26 20 views
47

我是從我的,我想從一個早期退出的方法如下拋出Error,:JavaScript中的`throw`後面需要`return`嗎?

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

我需要把return;聲明我throw後?目前它適用於我。如果它是多餘的,我寧願不把它放進去,但我不確定不同的瀏覽器可能會做什麼。

回答

78

你並不需要把return聲明throw之後,return線永遠不會達到作爲拋出異常立即動手控制返回給調用者。

+1

「立即拋出異常將控制權交還給調用者」... 除非有一個CATCH來處理調用堆棧的任何路徑中拋出的錯誤。 – Mahesh 2017-09-08 21:11:05

+5

@Mahesh我不確定你的意思是「除非」 - 發生'throw'的堆棧中的任何CATCH都是「調用者」的一部分, – 2017-09-08 22:24:42