Eu preciso `retornar` após` jogar` em JavaScript?

96

Estou lançando um Errorde um método meu do qual desejo uma saída antecipada, conforme abaixo:

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

Eu preciso colocar uma return;declaração após a minha throw? Funciona para mim, por enquanto. Se for supérfluo, prefiro não colocá-lo, mas não tenho certeza do que diferentes navegadores podem fazer.

Mateus
fonte

Respostas:

160

Você não precisa colocar uma returninstrução depois throw, a returnlinha nunca será alcançada, pois o lançamento de uma exceção imediatamente devolve o controle ao chamador.

Rob M.
fonte
1
"lançar uma exceção imediatamente devolve o controle ao chamador" ... A menos que haja um CATCH para lidar com o erro lançado em qualquer caminho da pilha de chamadas.
Mahesh
12
@Mahesh Não tenho certeza do que você quer dizer com "A menos que" - qualquer CAPTURA na pilha abaixo de onde throwocorreu faz parte de um "chamador"
Rob M.