Apakah saya perlu `return` setelah` throw` di JavaScript?

99

Saya membuang Errordari metode saya yang saya ingin keluar lebih awal, seperti di bawah ini:

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

Apakah saya perlu memberikan return;pernyataan setelah saya throw? Ini berhasil untuk saya, untuk saat ini. Jika tidak berguna, saya lebih suka tidak memasukkannya, tetapi saya tidak yakin apa yang mungkin dilakukan browser lain.

Matthew
sumber

Jawaban:

161

Anda tidak perlu memberikan returnpernyataan setelah itu throw, returnsaluran tidak akan pernah tercapai karena melempar pengecualian segera mengembalikan kendali ke pemanggil.

Rob M.
sumber
1
"melempar pengecualian segera menyerahkan kendali kembali ke pemanggil" ... Kecuali jika ada CATCH untuk menangani kesalahan yang dilemparkan di jalur manapun dari tumpukan panggilan.
Mahesh
12
@Mahesh Saya tidak yakin apa yang Anda maksud dengan "Kecuali" - CATCH apa pun dalam tumpukan di bawah tempat throwterjadinya adalah bagian dari "penelepon"
Rob M.