結論:エラーメッセージは「敵」ではなく「バグの場所を教えてくれる地図」です。読む順番は〈①エラーの種類名 → ②メッセージの一言 → ③どの行か〉の3つだけ。この3点さえ拾えれば、英語が読めなくても8割は自力で直せます。
初心者がプログラミングでいちばん心が折れるのが「赤い英語の文字がドバッと出た瞬間」です。でも、エラーメッセージはコンピュータが「ここが、こういう理由で、こう困っている」と教えてくれる案内文にすぎません。全部を訳す必要はなく、拾うべき場所は決まっています。この記事では、その読み方と調べ方を、環境構築なしで確認できる無料の逆引きリファレンスと一緒に説明します。
エラーメッセージから拾うのはこの3つだけ
長い英語に見えても、初心者が最初に見るべきは次の3点です。
- エラーの種類名(例:
NameError/TypeError/NullReferenceException)。だいたい行の先頭か末尾に、大文字で始まる単語で書いてあります。これが「何が起きたか」の分類です。 - 短い説明の一言(例:
X is not defined/Cannot read properties of undefined)。種類名のあとに続く英語で、「具体的に何がダメだったか」です。 - どの行で起きたか(
line 5や:12:のような数字)。多くのメッセージは下に行くほど自分のコードに近い場所を指します。まず自分が書いたファイルの行番号を探しましょう。
この3つが拾えれば、あとは「その種類名でどう直すか」を調べるだけです。逆に言うと、全文を日本語に訳そうとするのが遠回りです。種類名という「見出し」だけ覚えれば、次に同じエラーが出たとき一瞬で分かります。
種類名から直し方を引く(言語別の逆引き)
Become-Coder には、代表的なエラーを「1エラー=1ページ」で並べた逆引きリファレンスがあります。各ページは「どんなコードで出るか/実際のエラーメッセージ/直し方」をセットで載せているので、出た種類名で引くだけで対処法にたどり着けます。登録不要・無料・日本語です。
- Python なら Pythonのエラー逆引き を参照。よく出るものだと NameError ― 定義していない名前を使った や TypeError ― 型が合わない操作をした など。
- JavaScript なら JavaScriptのエラー逆引き を参照。初心者が最初にぶつかる Cannot read properties of undefined ― 無いものの中身を読んだ や ReferenceError ― 定義していない変数を使った がよく出ます。
- C# なら C#のエラー逆引き を参照。実行時に頻出の NullReferenceException ― null を触った は必読です。
- Java なら Javaのエラー逆引き を参照。C# の NullReferenceException にあたる NullPointerException ― null を触った が定番です。
これらの逆引きページは「読み物」形式のリファレンス(ブラウザ内で実行するのではなく、症状と直し方を照らし合わせて使うページ)です。エラーが出たら、まずここで種類名を引くのを習慣にしてください。
初心者がとくに詰まりやすいエラー
種類名ごとに「そもそも何が起きているか」を一度つかんでおくと、次からは自力で直せます。
- 「無い名前・無い変数」系(Python の
NameError、JavaScript のReferenceError)。タイプミス、宣言し忘れ、スコープの外で使った、が原因の大半です。 - 「型が合わない」系(Python の
TypeError)。数値と文字列を足そうとした、などが典型です。 - 「null / undefined を触った」系(C# の
NullReferenceException、Java のNullPointerException、JavaScript のCannot read properties of undefined)。まだ何も入っていない箱の中身を読もうとしたときに出ます。初心者がもっとも多く遭遇するエラーで、言語をまたいで同じ考え方で直せます。
「null ってそもそも何?」でつまずいている場合は、非同期処理やポインタといった概念そのものが原因のこともあります。関連する解説として async / await をやさしく解説 や ポインタをC言語でやさしく解説 も合わせてどうぞ。
エラーが出たときの調べ方(手順)
- 落ち着いて種類名を探す。赤い文字の中から、大文字で始まる種類名の単語を1つ見つけます。
- 自分のコードの行番号を探す。ライブラリ内部の行ではなく、自分が書いたファイルの行を見ます。
- 種類名で逆引きする。上のリファレンスで種類名のページを開き、「直し方」を読みます。
- それでも分からなければ種類名+短い説明で検索。エラー全文ではなく、
NameErrorのような種類名で調べると、同じ症状の情報にすぐたどり着けます。
エラーは「失敗の証拠」ではなく「次の一手を教えてくれるメモ」です。読めるようになるほど開発は速くなります。
次に読む
- Pythonのエラー逆引き ― NameError / TypeError / IndexError などをまとめて
- JavaScriptのエラー逆引き ― undefined 系・SyntaxError などをまとめて
- C#のエラー逆引き ― コンパイルエラー(CSxxxx)と実行時例外
- Javaのエラー逆引き ― cannot find symbol・NullPointerException など
- プログラミング、何から始める? ― そもそもの学習の入口から