Webアプリケーション開発の新人研修を担当していると、受講者からよく聞く言葉があります。
「エラーが出ると何を見ればいいのか分からない」
「英語のメッセージを見るだけで不安になる」
プログラミングを始めたばかりの頃、エラーは「失敗の証拠」のように感じてしまいがちです。
しかし、エラーは本来怖いものではありません。
エラーは、問題が発生している場所を教えてくれるヒントです。
今回は、担当したJavaによるWebアプリケーション開発研修で受講者へ説明した
「エラーコードを見るコツ」 を紹介します。
エラーは友達!怖くない!
エラーは「あなたを困らせるもの」ではなく、「問題の場所を教えてくれるヒント」です。
ただし……
エラーは英語しかしゃべれません。
英語だから難しく感じますが、ポイントさえ押さえれば読む量は意外と少なくて済みます。
1. 長文エラー(スタックトレース)は全部読まなくていい!
初心者が一番やりがちなのは、最初から最後まで全部読もうとすることです。
実際には、見る場所は限られています。
まず探すもの:エラー名
〇〇Exception
〇〇Error
例
- NullPointerException
- SQLException
- FileNotFoundException
「〇〇」の部分を日本語に訳すだけでも原因が想像できます。
スタックトレースの見方
① 一番上を見る
最初の数行に
- エラーの種類
- エラーメッセージ
が書かれています。
ここだけで原因の方向性が分かることも多いです。
② 自分が作成したJavaファイルを探す
スタックトレースには大量のフレームワーク内部処理が表示されます。
その部分は一旦飛ばして構いません。
at com.example.controller.SampleController.method(SampleController.java:25)
のように、
自分が作成・編集したファイル名
が出てきたら、そこが重要です。
特に見るのは
- ファイル名
- 行番号
です。
例 SampleController.java:25
つまり、
SampleController.javaの25行目で問題が発生している可能性がある
ということです。
確認するポイント
- 自分が作成した ファイル名 を探す
- 何行目 で発生しているか
フレームワーク内部の処理を最初から追いかける必要はありません。
③ 一番下も確認する
一番下には
「何がきっかけでこの処理が呼ばれたのか」が分かることがあります。
原因調査のヒントになるため、必要に応じて確認しましょう。
2. ブラウザに表示されるエラーはHTTPステータスを見る
Webアプリケーション開発では、ブラウザ上にエラーページが表示されることがあります。
その場合、まず HTTPステータスの番号 を確認します。
- 400番台 → 主にリクエスト側の問題です
- 調査場所:HTMLとコントローラークラスのURL/ファイル名の設定箇所
- 原因:URLパスやファイル名などの記述ミスでページが見つからない
- 500番台 → 主にアプリケーション側の問題です
- 調査場所:処理の流れ順に調査する。
デバッカーを使用した調査が有効 - 原因:リクエストからレスポンスの間のどこかでエラーが発生している
- 調査場所:処理の流れ順に調査する。
例
- コントローラークラスの内処理エラー
- 参照するクラス:処理エラー
- SQL構文のエラー
- テンプレートの記述ミス
などが考えられます。
- HTTPステータス400番台 → 主にリクエスト側の問題
- ルーティング設定を調べる
- HTTPステータス500番台 → 主にアプリケーション側の問題
- 処理の流れで、エラー箇所を調べる
3. 「いつ」エラーが起きたかを考える
エラーが発生したタイミングを整理すると、原因を絞り込みやすくなります。→該当処理を行っているファイルをデータの流れ順に調べればよい。
| 発生タイミング | 主な原因 |
|---|---|
| コンパイル時(赤線が表示される) | 文法ミス、型の不一致、import漏れなど |
| 実行時/アプリ起動時 | Spring設定、Bean登録、DB接続設定など |
| 画面表示時 | Controller、テンプレート、SQLなど... これでもなければ呼び出しているクラスを調べる |
| その他 | DB未起動、アプリケーションの二重起動、ファイル構成 |
まとめ:エラー調査の基本手順
- エラーが発生したタイミングを確認する
- Exception / Error の種類を確認する
- HTTPステータス(400番台・500番台)を確認する(ブラウザの場合)
- スタックトレースから自分が作成したファイルを探す → 表示された行番号を確認する
- 原因を1つずつ切り分けて確認する
最後に
初心者ほど「エラーが出た=失敗した」と考えがちですが、実際は違います。
エラーは 「どこを直せばよいか」を教えてくれる案内役 です。
エラーを恐れるのではなく、エラーメッセージを読んで原因を探す習慣を身につけることが、プログラミング上達への第一歩です。
