JavaScript: try/catch/finally文

このページではJavaScripttry/catch/fainally文について説明します。

try/catch/finally文は、例外が発生する可能性がある場所に記述します。

構文

try{
    // 通常処理
}
catch(e){
    // 例外が発生した時の処理
}
finally{
    // 後始末の処理
}

try句、catch句、finally句の順番で記述します。 try句には例外処理の対象となる通常処理を記述します。 catch句には例外が発生したときに呼び出される処理を記述します。 finally句には後始末する処理を記述します。 後始末をする処理が特になければfinally句は省略します。

catch句にかかれているローカル変数 e でスローされた値やエラーオブジェクトを参照できます。 変数名はeでなくても任意で構いません。

catch句とfinally句はどちらかを省略することができますが、 両方省略することはできません。

try句、catch句、finally句はそれぞれ処理が1文しかなくても 中括弧{}で囲みます。

処理の順番

try句、catch句、finally句が実行される順番を見ていきます。 例外が発生するかしないかによって異なります。

★ 例外が発生した場合の処理

try句 -> catch句 -> finally句の順番で処理を行います。

★ 例外が発生しない場合の処理

try句 -> finally句の順番に処理を行います。

使用例

次のプログラムでは意図的に例外を発生させて、catch句でコンソール表示をしています。

try{
    var i = 0;
    if (i == 0) throw new Error("Error 0");
}
catch(e){
    console.log(e);
}

// 実行結果 (Firefox)
Error: Error 0
JavaScript入門