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

JavaScriptのthrowステートメントの使い方と例外処理の基本

throwステートメントとは

JavaScriptでは、throwステートメントを使用することで、組み込みの例外や独自に定義したカスタム例外を意図的に発生させることができます。投げられた(スローされた)例外は、後からtry...catch構文で捕捉でき、エラーの内容に応じた適切な処理を実行できます。

基本的な構文

throw 式;

throwで投げられるのは文字列だけではなく、数値・真偽値・オブジェクトなど任意の式を指定できます。ただし実務では、エラーメッセージやスタックトレースなどの詳細情報を持たせられるErrorオブジェクト(例:throw new Error("メッセージ"))を使用するのが推奨されています。

サンプルコード

以下のコードでは、除算を実行する前に除数が0かどうかをチェックし、0であればthrowによって例外を発生させています。発生した例外はcatchブロックで捕捉され、アラートとしてエラーメッセージが表示されます。実際にブラウザで実行して動作を確認してみてください。

<html>
   <head>
      <script>
         <!--
            function myFunc()
               {
                  var a = 100;
                  var b = 0;
                  try {
                     if ( b == 0 ){
                        throw( "ゼロによる除算エラーです。" );
                     } else {
                        var c = a / b;
                     }
                 }
               catch ( e ) {
                  alert("エラー: " + e );
               }
            }
         //-->
      </script>
   </head>

   <body>
      <p>次のボタンをクリックすると結果が表示されます:</p>
      <form>
         <input type = "button" value = "クリックしてください" onclick = "myFunc();" />
      </form>
   </body>
</html>

押さえておきたいポイント

  • throwは文字列・数値・オブジェクトなど、任意の値を例外として投げることができます。
  • 投げられた例外をtry...catchで捕捉しなかった場合、プログラムはその時点で中断されます。
  • デバッグやログ出力を考慮すると、単純な文字列ではなくErrorオブジェクトを投げるのがベストプラクティスです。
  • 必ず実行したい後処理がある場合は、finallyブロックを併用すると便利です。
  1. JavaScriptでHTMLページをリダイレクトする方法をわかりやすく解説

    ページリダイレクトとは?あるURLをクリックしてページXにアクセスしたはずなのに、実際には別のページYに移動された——そんな経験はありませんか?これは「ページリダイレクト」と呼ばれる仕組みによるものです。Web開発では、サイト移転時や古いURLから新しいURLへの誘導など、さまざまな場面で活用されています。JavaScriptでリダイレクトを実装するJavaScriptを使えば、クライアント側(ブラウザ側)で非常にシンプルにページリダイレクトを実現できます。特別なライブラリやサーバー側の設定は不要で、window.location.assign()メソッドを呼び出すだけでOKです。訪問者を新し

  2. JavaScriptで「:(コロン)」と「=(イコール)」の使い分けを理解する方法

    JavaScriptでは、コロン(:)はオブジェクトにプロパティを定義する際に使用し、イコール(=)は変数に値を代入する際に使用します。この2つの記号は似たような場面で目にしますが、役割がまったく異なるため、正しく使い分けることが重要です。コロン(:)を使う場面コロンは主にオブジェクトリテラル内でプロパティ名とその値を結びつけるときに使います。「プロパティ名: 値」という形式で記述し、オブジェクトの構造を定義できます。イコール(=)を使う場面イコールは代入演算子と呼ばれ、宣言した変数や既存の変数・プロパティに値を代入するときに使用します。右辺の値が左辺の変数に格納されます。サンプルコード以下の