JavaScript'e "atma" dan sonra "geri dönmem" gerekir mi?


103

Bir atıyorum Errorben aşağıdaki gibi, erken bir çıkış istedikleri benim bir yöntemden:

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

Benden return;sonra ifade koymam gerekir throwmi? Şimdilik benim için çalışıyor. Gereksizse onu yerleştirmeyi tercih etmezdim, ancak farklı tarayıcıların ne yapabileceğinden emin olamıyorum.

Yanıtlar:


167

Sonrasında returnifade koymanıza gerek yok throw, returnel kontrolünü arayan kişiye hemen bir istisna atarak satıra asla ulaşılmayacak.


1
"bir istisna atma, kontrolü hemen arayana geri verir" ... Çağrı yığınının herhangi bir yolunda atılan hatayı işlemek için bir CATCH olmadığı sürece.
Mahesh

12
Yığın ve alt kısımda herhangi CATCH - Ben emin "sürece" ile ne demek değilim @Mahesh throwbir "arayan" bir parçasıdır oluştu
Rob M.

1
'Throw new Error ()' satırından sonra bir console.log var ve bu console.log yürütülüyor. Öyleyse neden bu?
Aleks Grunwald
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.