try-catch-finally

try-catch-finally文は、例外処理(エラー処理)と最終処理を指定する制御構文。

最終処理は、例外が発生したかどうかに限らず、実行する。

構文

無条件例外処理と最終処理

try {
    // 例外を発生させる可能性がある処理文
} catch( e ) {
    // 無条件例外処理
} finally {
    // 最終処理
}

※ 2013/02/04現在、Firefox、IE9、Chromeで動作確認。

条件付き例外処理と最終処理

try {
    // 例外を発生させる可能性がある処理文
} catch( e if 条件式 ) {
    // 条件付き例外処理
} finally {
    // 最終処理
}

※ 2013/02/04現在、Firefoxでのみ動作を確認。

複数の例外処理と最終処理

try {
    // 例外を発生させる可能性がある処理文
} catch( e if 条件式1 ) {
    // 条件付き例外処理1
} catch( e if 条件式2 ) {
    // 条件付き例外処理2
} catch( e ) {
    // 無条件例外処理
} finally {
    // 最終処理
}

※ 2013/02/04現在、Firefoxでのみ動作を確認。

サンプル

無条件例外処理と最終処理

<script type="text/javascript">
try {
    throw "例外サンプル1";  // 例外を生成
} catch( e ) {  // 無条件例外処理
    document.write ( "例外: " + e + "<br />" );
} finally { // 最終処理
    document.write ( "最終処理<br />" );
}
</script>

↓↓↓出力結果↓↓↓

※ 2013/02/04現在、Firefox、IE9、Chromeで動作確認。

条件付き例外処理と最終処理

<script type="text/javascript">
try {
    throw "例外サンプル1";  // 例外を生成
} catch( e if e == "例外サンプル1" ) {  // 条件付き例外処理
    document.write ( "例外: " + e + "<br />" );
} finally { // 最終処理
    document.write ( "最終処理<br />" );
}
</script>

↓↓↓出力結果↓↓↓

※ 2013/02/04現在、Firefoxでのみ動作を確認。

複数の例外処理と最終処理

<script type="text/javascript">
try {
    throw "例外サンプル2";  // 例外を生成
} catch( e if e == "例外サンプル1" ) {  // 条件付き例外処理
    document.write ( "例外: " + e + "<br />" );
} catch( e if e == "例外サンプル2" ) {  // 条件付き例外処理
    document.write ( "例外: " + e + "<br />" );
} catch( e ) {  // 無条件例外処理
    document.write ( "例外: " + e + "<br />" );
} finally { // 最終処理
    document.write ( "最終処理<br />" );
}
</script>

↓↓↓出力結果↓↓↓

※ 2013/02/04現在、Firefoxでのみ動作を確認。

スポンサード リンク

カテゴリー: JavaScript, try-catch-finally, リファレンス, 制御構造 タグ: パーマリンク