Чи потрібно "повертати" після `кидання` в JavaScript?


96

Я кидаю Errorз мого методу, що я хочу якнайшвидшого виходу з нього, як нижче:

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

Чи потрібно ставити return;заяву після своєї throw? Це працює на мене, поки що. Якщо це зайве, я краще не ставлю його, але я не можу бути впевнений, що можуть робити різні браузери.

Відповіді:


160

Після цього вам не потрібно ставити returnзаяву throw, returnрядок ніколи не буде досягнуто, оскільки викидання виключення негайно передає контроль назад абоненту.


1
"викидання винятку негайно передає контроль назад абоненту" ... Якщо тільки немає CATCH для обробки викинутої помилки в будь-якому шляху стека виклику.
Махеш

12
@Mahesh Я не впевнений, що ви маєте на увазі під "Винятком" - будь-який CATCH у стеці, під якою throwстався, є частиною "абонента"
Rob M.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.