カテゴリ: JavaScript 更新日: 2026/05/30

JavaScriptのスタックトレースを初心者でもわかる完全ガイド!console.errorでエラーを読み解く方法

JavaScriptのスタックトレースを読み解く方法(console.errorなど)
JavaScriptのスタックトレースを読み解く方法(console.errorなど)

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaScriptでエラーが出たときに、どこが原因かよくわからないことがあります。どうやって調べればいいですか?」

先生

「それはスタックトレースを読むことがポイントです。JavaScriptでは、console.errorを使うとエラーの場所や原因を詳しく確認できます。」

生徒

「スタックトレースって難しそうです…。どんな情報が書かれているんですか?」

先生

「簡単に言うと、エラーが発生した順番や場所を教えてくれる履歴です。これを順番に追うと、どの行のコードが原因か特定できます。」

生徒

「なるほど!それなら初心者の僕でも原因を見つけられそうです。」

先生

「では、基本から順番に見ていきましょう!」

1. スタックトレースとは何か?

1. スタックトレースとは何か?
1. スタックトレースとは何か?

JavaScriptでプログラムを実行するとき、エラーが発生するとブラウザや開発者ツールに表示される情報があります。これをスタックトレースと呼びます。スタックトレースには、どの関数でエラーが起きたか、どの行で問題が発生したか、呼び出しの順番などが含まれています。初心者でも、この情報を読むことでエラーの原因を特定しやすくなります。

2. console.errorでエラーを表示する

2. console.errorでエラーを表示する
2. console.errorでエラーを表示する

JavaScriptでは、console.logで情報を出力できますが、エラー情報を出したい場合はconsole.errorを使います。console.errorはエラー用に赤色で表示され、スタックトレースも確認できます。


function divide(a, b) {
  if (b === 0) {
    console.error("ゼロで割ることはできません");
    return;
  }
  return a / b;
}

divide(10, 0);

ゼロで割ることはできません

この例では、0で割ろうとしたときにconsole.errorを使ってエラー情報を出力しています。

3. try-catchでエラーを捕まえてスタックトレースを確認する

3. try-catchでエラーを捕まえてスタックトレースを確認する
3. try-catchでエラーを捕まえてスタックトレースを確認する

JavaScriptではtry-catch構文を使うと、エラーが発生してもプログラムが止まらず、捕まえたエラーをスタックトレースとして確認できます。


try {
  let result = unknownFunction();
} catch (error) {
  console.error("エラーが発生しました:", error);
}

エラーが発生しました: ReferenceError: unknownFunction is not defined

このようにerrorオブジェクトをconsole.errorで表示すると、どの関数で問題が起きたかまでわかります。

4. スタックトレースの読み方の基本

4. スタックトレースの読み方の基本
4. スタックトレースの読み方の基本

スタックトレースには通常、以下の情報が表示されます。

  • エラーの種類(例: ReferenceError, TypeErrorなど)
  • エラーメッセージ(何が問題かの説明)
  • エラーが発生した行番号やファイル名
  • 関数の呼び出し履歴(どの順番で関数が呼ばれたか)

例えば次の例を見てみましょう。


function first() {
  second();
}

function second() {
  third();
}

function third() {
  console.error("ここでエラーが発生しました");
}

first();

ここでエラーが発生しました

ブラウザの開発者ツールでは、どの関数から順番に呼ばれたかが表示され、スタックトレースとして追跡可能です。

5. ブラウザの開発者ツールでスタックトレースを見る

5. ブラウザの開発者ツールでスタックトレースを見る
5. ブラウザの開発者ツールでスタックトレースを見る

ChromeやEdgeなどのブラウザには、開発者ツールがあります。F12キーを押すと開きます。「Console」タブにconsole.errorで出力されたエラーやスタックトレースが表示されます。エラーの行番号をクリックすると、ソースコード上の該当箇所にジャンプできます。これでどの部分のコードが原因かを簡単に確認できます。

6. スタックトレースを活用してデバッグを効率化する方法

6. スタックトレースを活用してデバッグを効率化する方法
6. スタックトレースを活用してデバッグを効率化する方法

初心者でもスタックトレースを理解することで、デバッグが効率的になります。ポイントは以下です。

  • エラーの種類をまず確認する
  • どの関数でエラーが発生したかを追う
  • 呼び出し順序を理解して原因を特定する
  • 必要に応じてconsole.errorを増やして詳細を確認する

例えば次のように関数内部で条件分岐をしてエラーを出すこともできます。


function calculateArea(width, height) {
  if (width <= 0 || height <= 0) {
    console.error("幅や高さは0より大きい値を入力してください");
    return;
  }
  return width * height;
}

calculateArea(-5, 10);

幅や高さは0より大きい値を入力してください

このようにエラーが出た箇所をスタックトレースで追いながら修正すると、プログラムの理解も深まります。

7. まとめに向けたポイント

7. まとめに向けたポイント
7. まとめに向けたポイント

スタックトレースを活用することで、JavaScriptのエラー原因を正確に把握できます。初心者はまずconsole.errorを使い、ブラウザの「Console」タブで出力を確認しましょう。エラーの種類、発生行、呼び出し関数の順番を意識すると、デバッグが格段にスムーズになります。これを繰り返すことで、どんなエラーでも冷静に原因を特定できるスキルが身に付きます。

最後に、簡単なサンプルでエラーの捕捉とスタックトレースの確認を行いましょう。


try {
  let x = y + 1; // yは未定義
} catch (err) {
  console.error("エラーが捕捉されました:", err);
}

エラーが捕捉されました: ReferenceError: y is not defined

このように、スタックトレースはエラーを読み解く強力なツールです。

まとめ

まとめ
まとめ

今回の内容を振り返ると、JavaScriptでのスタックトレースの理解とconsole.errorの活用は、初心者にとって非常に重要なデバッグスキルです。スタックトレースは単なるエラーメッセージではなく、エラーが発生した関数の呼び出し順序や行番号、原因を特定するための詳細情報を提供してくれます。
まず、エラーが発生した際にはconsole.errorを使って、ブラウザの「Console」タブで赤色表示のメッセージとスタックトレースを確認しましょう。これにより、どの行でどの関数が原因かをすぐに把握できます。
次に、try-catch構文を組み合わせることで、プログラムが停止せずにエラーを捕捉し、エラー内容をログとして出力できます。特に複数の関数が連携している場合や外部APIを使用する場合には、スタックトレースを追うことでどの箇所で問題が起きたかを正確に確認できます。
また、スタックトレースを活用する際のポイントとして、エラーの種類を把握すること、呼び出し順序を理解すること、必要に応じてconsole.errorを増やして詳細を確認することが挙げられます。これにより、単なるエラー表示から一歩進んで、原因特定や修正までの流れをスムーズに行えるようになります。
さらに、初心者がエラーに遭遇したとき、焦らず順序立ててスタックトレースを読み解くことで、JavaScriptの関数の動きや変数の状態を理解する学習効果も高まります。繰り返しデバッグを行うことで、エラー原因を冷静に特定できるスキルが自然に身につき、より複雑なプログラムでも効率的に修正できるようになります。

先生と生徒の振り返り会話

生徒

「先生、今回のスタックトレースの解説で、エラーが出たときにどこを見ればいいか少しわかってきました。console.errorを使うと赤色で目立つから、初心者でも追いやすいですね。」

先生

「そうですね。スタックトレースはただのエラーメッセージではなく、呼び出し履歴やエラー発生箇所まで示してくれるので、原因を特定する力が身につきます。try-catchを組み合わせれば、プログラムが止まらずにエラー内容を確認できるのも大きな利点です。」

生徒

「なるほど。今まではエラーが出ると焦ってしまっていましたが、順番にスタックトレースを追えば、どの関数で問題が起きたかを冷静に確認できるんですね。」

先生

「その通りです。特に複数の関数が連鎖している場合や外部ライブラリを使う場合には、スタックトレースが非常に役立ちます。エラーの種類や発生順序を意識するだけでも、原因特定のスピードが格段に上がります。」

生徒

「そして、何度もconsole.errorで出力して追う練習をすることで、エラーを怖がらずに対応できるようになるんですね。」

先生

「そうです。スタックトレースを読み解く習慣をつければ、初心者でもエラー原因を見つける力が自然に身につきます。これが理解できれば、より複雑なJavaScriptのプログラムでも、自信を持ってデバッグできるようになります。」

では最後に、簡単なサンプルで復習しましょう。


try {
const result = someUndefinedFunction(); // 未定義の関数を呼び出す
} catch (error) {
console.error("スタックトレースを確認:", error);
}

スタックトレースを確認: ReferenceError: someUndefinedFunction is not defined

このようにエラーを捕捉し、スタックトレースを確認することで、どの行で何が原因かを正確に把握できます。繰り返し練習することで、どんなエラーにも冷静に対応できるスキルが身に付きます。

関連記事:
カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptの関数に型をつける方法(引数・戻り値)を初心者向けに徹底解説!
New2
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
New3
TypeScript
TypeScriptでExpressのミドルウェアを型安全に定義する方法!バックエンド開発の初心者向け解説
New4
JavaScript
JavaScriptのfilterメソッドで条件に合う要素を抽出する方法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptでフォームの値を取得する方法を徹底解説!valueプロパティの使い道
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptでHTML5バリデーションAPIを使いこなす!初心者でもわかるフォーム入力チェック
No.3
Java&Spring記事人気No3
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで要素を削除する方法(removeChild, removeなど)
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptでオブジェクト指向のカプセル化を学ぶ!初心者でもわかるクラスとプロパティの保護方法
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptの配列操作でよくあるエラーとその解決法まとめ