unntak - Må jeg `returnere` etter `throw` i JavaScript?


Jeg kaster en feil fra en metode jeg ønsker å komme meg ut av tidlig, som nedenfor:

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

Må jeg sette inn en return;-setning etter min throw? Det fungerer for meg, for nå. Hvis det er overflødig, vil jeg helst ikke sette det inn, men jeg kan ikke være sikker på hva forskjellige nettlesere kan gjøre.

Svar #1

Du trenger ikke å skrive en return-setning etter throw, return-linjen vil aldri bli nådd siden det å kaste et unntak umiddelbart gir kontrollen tilbake til den som kaller.

Svar #2

Throw-setningen kaster et brukerdefinert unntak. Utførelsen av den nåværende funksjonen vil stoppe (setningene etter throw vil ikke bli utført), og kontrollen vil bli overført til den første catch-blokken i kallstakken. Hvis det ikke finnes noen catch-blokk blant kallende funksjoner, vil programmet avsluttes.

Relaterte artikler