エラーメッセージを読む習慣をつけよう
学習の目標
本章では、以下の内容を学習します。
- エラーメッセージの読み方を理解する
- スタックトレースの見方を学ぶ
- デバッグのコツを習得する
- Google検索での解決方法を学ぶ
はじめに
プログラミングを始めたばかりの頃は、エラーメッセージを見ると怖くなってしまうかもしれません。しかし、エラーメッセージは実はとても親切な情報なのです。
エラーメッセージは、「何が間違っているのか」「どこで問題が起きたのか」を教えてくれる大切な手がかりです。エラーメッセージを正しく読むことができれば、問題を素早く解決することができるようになります。
エラーメッセージを読む習慣を身につけることで、自分で問題を解決できるプログラマーになることができます。
エラーメッセージの基本的な読み方
まずは、簡単なエラーメッセージから読み方を学んでみましょう。VS Codeで新しいHTMLファイルerror-reading-test.html
を作成してください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>エラーメッセージを読む練習</title>
</head>
<body>
<h1>エラーメッセージを読む練習</h1>
<script>
try {
console.log(myVariable);
} catch (error) {
console.log("エラーの種類: " + error.name);
console.log("エラーメッセージ: " + error.message);
}
</script>
</body>
</html>
このコードを実行すると、以下のようなエラーメッセージが表示されます。
エラーの種類: ReferenceError
エラーメッセージ: myVariable is not defined
このエラーメッセージから分かることは、「myVariableという変数が定義されていないのに使おうとした」ということです。is not defined
は「定義されていません」という意味です。とてもシンプルで分かりやすいメッセージですね。
変数名のスペルミスの場合
変数名のスペルを間違えた場合のエラーメッセージを見てみましょう。
<script>
const userName = "田中";
try {
console.log(userNmae); // スペルミス:aとmが逆
} catch (error) {
console.log("エラー: " + error.message);
}
</script>
このコードを実行すると、以下のエラーが表示されます。
エラー: userNmae is not defined
userNmae is not defined
というメッセージから、「userNmaeという変数が定義されていない」ことが分かります。でも実際にはuserName
という変数は定義されているので、これはスペルミスだということに気づくことができます。
関数でないものを関数として呼び出した場合
文字列を関数として呼び出そうとした場合のエラーメッセージを確認してみましょう。
<script>
const message = "こんにちは";
try {
message(); // 文字列を関数として呼び出し
} catch (error) {
console.log("エラー: " + error.message);
}
</script>
このコードを実行すると、以下のエラーが表示されます。
エラー: message is not a function
message is not a function
は「messageは関数ではありません」という意味です。このメッセージを見れば、「あ、messageを関数として呼び出そうとしたけど、実際は文字列だったんだ」ということが分かります。
Google検索で解決方法を探そう
分からないエラーに遭遇した時は、Google検索を活用しましょう。
<script>
try {
const arr = "文字列";
arr.push("要素"); // 文字列にpushメソッドは使えない
} catch (error) {
console.log("発生したエラー: " + error.message);
}
</script>
このコードを実行すると、以下のエラーが表示されます。
発生したエラー: arr.push is not a function
このエラーメッセージをGoogleで検索してみましょう。検索キーワードは以下のようになります。
JavaScript arr.push is not a function
このように検索すると、同じ問題に遭遇した人の質問と回答を見つけることができます。多くの場合、「配列ではないものにpushメソッドを使おうとした」という解決策が見つかるはずです。
まとめ
本章では、エラーメッセージを読む習慣について学びました。以下の内容を理解できたことと思います。
- エラーメッセージには問題の種類と内容が分かりやすく書かれている
is not defined
は「定義されていない」、is not a function
は「関数ではない」という意味- エラーメッセージを読めば、何が問題なのかがすぐに分かる
- Google検索でエラーメッセージを調べると解決策が見つかる
エラーメッセージは敵ではなく、問題解決のヒントをくれる味方です。エラーが出ても慌てずに、まずはメッセージをよく読んでみましょう。英語のメッセージも、実はとてもシンプルで理解しやすいものばかりです。
Starterプランでより詳しく学習
この先のコンテンツを読むにはStarterプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。