2014-09-26 16 views
47

sto buttando un Error da un metodo che in me non voglio una rapida uscita da, come di seguito:Ho bisogno di `return` dopo` throw` in JavaScript?

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

Ho bisogno di mettere una dichiarazione return; dopo il mio throw? Funziona per me, per ora. Se è superfluo preferirei non inserirlo, ma non posso essere sicuro di cosa potrebbero fare i diversi browser.

risposta

78

Non è necessario mettere una dichiarazione return dopo throw, la linea return non verrà mai raggiunto come un'eccezione mani immediatamente il controllo al chiamante.

+1

"lanciando un'eccezione passa immediatamente il controllo al chiamante" ... A meno che non ci sia un CATCH per gestire l'errore generato in qualsiasi percorso dello stack di chiamate. – Mahesh

+5

@Mahesh Non sono sicuro di cosa intendi con "Unless" - qualsiasi CATCH nella pila al di sotto della quale si è verificato il 'throw' è parte di un" caller " –