例外 - JavaScriptで`throw`の後に`return`は必要ですか?
私は、以下のように早期終了したい自分のメソッドから Error を投げています:
// No route found
if(null === nextRoute) {
throw new Error('BAD_ROUTE');
}
throw の後に return; 文を置く必要がありますか?今のところは私の環境では動作しています。もし余計なら入れたくはないのですが、異なるブラウザがどう動作するかは確信が持てません。
回答 #1
throw の後に return 文を置く必要はありません。例外をスローするとすぐに制御が呼び出し元に戻されるため、return の行は決して実行されません。
回答 #2
throw文はユーザー定義の例外をスローします。現在の関数の実行は停止します(throwの後の文は実行されません)、そして制御は呼び出しスタック内の最初のcatchブロックに渡されます。呼び出し元の関数にcatchブロックが存在しない場合、プログラムは終了します。