JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで例外をキャッチする方法!try...catch...finallyの基本を解説

JavaScriptにおける例外処理の基本

JavaScriptで例外(エラー)をキャッチするには、try...catch...finally 構文を使用します。この構文と throw 演算子を組み合わせることで、プログラムの実行中に発生したエラーを適切に処理し、アプリケーションのクラッシュを防ぐことができます。

なお、例外処理でキャッチできるのは、プログラマが意図的に発生させた例外や実行時エラー(ランタイムエラー)です。JavaScriptの構文エラーはキャッチできない点に注意しましょう。

try...catch...finally の各ブロックの役割

  • tryブロック: エラーが発生する可能性のあるコードを記述します。
  • catchブロック: tryブロック内でエラーが発生した場合にのみ実行され、エラー情報を受け取って処理します。
  • finallyブロック: エラーの有無にかかわらず必ず実行されます。リソースの解放など、後処理に利用されます。

サンプルコード

以下のコードを実行して、JavaScriptで例外をキャッチする方法を確認してみましょう。

<html>
   <head>
      <script>
         <!--
            function myFunc() {
               var a = 100;
               try {
                  alert("変数aの値は : " + a );
               }
               catch ( e ) {
                  alert("エラー: " + e.description );
               }
               finally {
                  alert("finallyブロックは常に実行されます!" );
               }
            }
         //-->
      </script>
   </head>

   <body>
      <p>以下のボタンをクリックして結果を確認してください:</p>

      <form>
         <input type = "button" value = "クリック" onclick = "myFunc();" />
      </form>
   </body>
</html>

動作の解説

この例では、変数 a に値を代入し、tryブロック内でその値をアラート表示しています。tryブロック内でエラーが発生しなければ catch ブロックはスキップされますが、エラーが発生した場合には catch ブロックが実行され、エラー内容が表示されます。

そして最後に、finallyブロックはエラーの有無に関係なく必ず実行されるため、「Finally block will always execute!」というメッセージが常に表示されます。

まとめ

try...catch...finally 構文を活用することで、予期しないエラーが発生してもプログラムを安全に継続させることができます。特に finally ブロックは、ファイル操作やネットワーク通信などの後始末処理に役立つため、ぜひ覚えておきましょう。

  1. JavaScriptのすべてのエラーをキャッチする方法【onerrorイベントハンドラの使い方】

    ページ上で発生するすべてのJavaScriptエラーを捕捉したい場合は、onerror()メソッドを使用します。onerrorイベントハンドラは、JavaScriptで最初に提供されたエラー処理のための仕組みであり、ページ上で例外が発生するたびに、windowオブジェクトに対してerrorイベントが発火します。 onerrorイベントハンドラが受け取る3つの情報 onerrorイベントハンドラは、エラーの正確な内容を特定するために、以下の3つの情報を受け取ることができます。 エラーメッセージ — ブラウザがそのエラーに対して表示するものと同じメッセージ URL — エラーが発生したファイルの

  2. JavaScriptでメソッドを借りる方法とは?call()・apply()・bind()の使い方を解説

    JavaScriptでは、call()、apply()、bind() の3つのメソッドを使うことで、他のオブジェクトが持つメソッドを「借りて」実行することができます。このテクニックは「メソッドの借用(Method Borrowing)」と呼ばれ、コードの再利用性を高めるために広く活用されています。call()・apply()・bind() の違いcall():第1引数に this として渡したいオブジェクトを指定し、残りの引数はカンマ区切りで個別に渡します。呼び出し時に即座に実行されます。apply():call() とほぼ同じですが、引数を配列(または配列風オブジェクト)としてまとめて渡す点