Devo "tornare" dopo "lancia" in JavaScript?


96

Sto lanciando un Errorda un mio metodo da cui voglio un'uscita anticipata, come di seguito:

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

Devo mettere una return;dichiarazione dopo il mio throw? Per me funziona, per ora. Se è superfluo preferirei non inserirlo, ma non sono sicuro di cosa potrebbero fare i diversi browser.

Risposte:


160

Non è necessario inserire returnun'istruzione dopo throw, la returnlinea non verrà mai raggiunta poiché il lancio di un'eccezione restituisce immediatamente il controllo al chiamante.


1
"lanciare un'eccezione immediatamente restituisce il controllo al chiamante" ... A meno che non ci sia un CATCH per gestire l'errore lanciato in qualsiasi percorso dello stack di chiamate.
Mahesh

12
@Mahesh Non sono sicuro di cosa intendi con "A meno che" qualsiasi CATCH nello stack sotto il punto in cui throwsi è verificato sia parte di un "chiamante"
Rob M.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.