Dois-je `return` après` throw` en JavaScript?

96

Je lance une Errorméthode à partir de laquelle je souhaite une sortie anticipée, comme ci-dessous:

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

Dois-je mettre une return;déclaration après mon throw? Cela fonctionne pour moi, pour le moment. Si c'est superflu, je préfère ne pas le mettre, mais je ne peux pas être sûr de ce que différents navigateurs pourraient faire.

Matthieu
la source

Réponses:

160

Vous n'avez pas besoin de mettre une returninstruction après throw, la returnligne ne sera jamais atteinte car le fait de lancer une exception rend immédiatement le contrôle à l'appelant.

Rob M.
la source
1
"lever une exception rend immédiatement le contrôle à l'appelant" ... Sauf s'il y a un CATCH pour gérer l'erreur levée dans n'importe quel chemin de la pile d'appels.
Mahesh
12
@Mahesh Je ne suis pas sûr de ce que vous entendez par "Sauf" - tout CATCH dans la pile sous l'endroit où throws'est produit fait partie d'un "appelant"
Rob M.