JavaScript: try/catch/finally文
このページではJavaScriptのtry/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