JS_エラー処理

15エラー処理

JavaScriptでプログラミングを行う際、何か問題が発生すると、通常はエラーが発生します。JavaScriptのエラーオブジェクトは、これらのエラーの詳細情報を提供するための特別な種類のオブジェクトです。
簡単に言うと、エラーオブジェクトはプログラムがなぜ停止したのか、どのような問題があったのかを教えてくれる「ヘルパー」のようなものです。

エラーオブジェクトの基本

エラーオブジェクトには、主に次のような情報が含まれています:

name

エラーの種類を示します。例えば、「TypeError」、「ReferenceError」などがあります。

代表的な例外の種類

  • ReferenceError: 未定義の変数や関数を参照しようとした場合に発生します。
  • SyntaxError: 記法に間違いがある場合に発生します。
  • TypeError: 主に、メソッド実行時に期待された方ではなかった場合に発生します。

message

人が読める形式でエラーの詳細を説明します。

stack(オプション)

エラーが発生した時のプログラムの呼び出しスタックを示します。これは、エラーがどこで発生したかを追跡するのに役立ちます。

実際にはtry…catch文と組み合わせて使用されることが多いです。
これらを組み合わせることでプログラムの特定の部分でエラーをキャッチ(捕捉)し、エラーオブジェクトに基づいて適切な処理を行うことができます。
また、finallyを組み合わせることで例外の発生有無にかかわらず実行したいコードを実行することができます。
実行タイミングは、「tryブロックの終了後」または「catchブロックの終了後」になります。

例1: エラーオブジェクトを作成し、throw文で例外を発生させる場合

try {
  // エラーオブジェクトを作成
  throw new Error('このエラーをテストします');
  console.log('これはエラー発生により実行されない')
} catch (e) { // eはErrotオブジェクト
  // エラーが発生した場合の処理
  console.log(e.name); // 出力: "Error"
  console.log(e.message); // 出力: "このエラーをテストします"
} finally {
    console.log('finallyブロック: エラーの有無に関わらず実行されます');
}

例2: 存在しない関数を実行し、エラーを発生させる場合

try {
  // 存在しない関数を実行
  notExistingFunction();
  console.log('これはエラー発生により実行されない')
} catch (e) { // eはErrotオブジェクト
  // エラーが発生した場合の処理
  console.log(e.name); // 出力: "ReferenceError"
  console.log(e.message); // 出力: "notExistingFunction is not defined"
} finally {
 console.log('finallyブロック: エラーの有無に関わらず実行されます');
}

投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です