JavaScript: throw文

このページではJavaScriptthrow文について説明します。

例外的な条件やエラーが発生したことを示すシグナルのことを例外といいます。 その例外を発生させるのがthrow文です。 (throwとは「投げる」という意味です)

発生した例外をキャッチするのはtry/catch/finally文です。

書式

throw 投げる式

投げる式に型の制限はありません。 数値や文字列、true/false等自由に投げる式を設定できます。

throw "Error";    // 文字列
throw 11;         // 数値
throw false;      // true/false

エラーオブジェクトを設定することもできます。

throw new Error("Errow 12");

使用例

次のプログラムは、aがマイナスの値の場合例外をスローするプログラムです。

if (a < 0){
    // マイナスの場合例外をスローする
    throw new Error("Error minus");
}else{
    // 処理
}

例外がスローされた時

例外がスローされた時、JavaScriptのインタプリタは最も近い例外ハンドラに処理を移動します。 例外ハンドラはtry/catch/finally文でのcatch句に記述します。

最初に例外がスローされたコードブロックにcatch句がないかを調べます。 もしなければ、上位のコードブロックにcatch句がないかを調べます。 コードブロックをさかのぼっていき、例外ハンドラが見つからない場合はユーザーにエラーが報告されます。

次のプログラムは例外ハンドラが見つからない場合のエラーメッセージの例です。(Firefox)

var a = -1

if (a < 0){
    // マイナスの場合例外をthrowする
    throw new Error("Error minus");
}else{
    // 処理
}

// 実行結果
Error: Error minus