JavaScriptで「throw」の後に「return」する必要がありますか?


96

以下のように、私は自分のErrorメソッドから早期に終了したいものをスローしています:

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

私のreturn;後にステートメントを置く必要がありthrowますか?それは今のところ私にとってはうまくいきます。それが不必要な場合は、入れたくないのですが、別のブラウザーで何ができるのかわかりません。

回答:


160

returnthrowにステートメントを置く必要はありませんreturn。例外がスローされるとすぐに制御が呼び出し元に戻されるため、行に到達することはありません。


1
「例外をスローすると、すぐに制御が呼び出し元に戻されます」...呼び出しスタックの任意のパスでスローされたエラーを処理するCATCHがない限り。
Mahesh

12
@Mahesh「Unless」の意味がわからない- throw発生したスタックの下のスタック内のCATCHは「caller」の一部である
Rob M.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.