¿Necesito "regresar" después de "lanzar" en JavaScript?


96

Estoy lanzando un Errormétodo de un método mío del que quiero una salida temprana, como se muestra a continuación:

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

¿Necesito poner una return;declaración después de mi throw? Funciona para mí, por ahora. Si es superfluo, prefiero no incluirlo, pero no puedo estar seguro de lo que podrían hacer los diferentes navegadores.

Respuestas:


160

No es necesario que coloques una returndeclaración después throw, returnnunca se llegará a la línea, ya que al lanzar una excepción se devuelve el control inmediatamente a la persona que llama.


1
"lanzar una excepción inmediatamente devuelve el control al llamador" ... A menos que haya un CATCH para manejar el error lanzado en cualquier ruta de la pila de llamadas.
Mahesh

12
@Mahesh No estoy seguro de lo que quiere decir con "a menos que" - cualquier CATCH en la pila debajo de donde throwocurrió es parte de una "persona que llama"
Rob M.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.