プログラミング初心者向け!エラーメッセージの読み方をサンプル付きで解説

こんにちは、飯塚です。
 
プログラミングを教える場面が増えてきました。頭を抱えている後輩を見ていると、エラーメッセージから何を読み取って何を調べればいいのか分からず、悩んでいることが多いです。
 
というわけで今回はエラーメッセージの読み方をサンプル付きで解説します。初心者の方であれば、自分だったらどういう手順で調べるかを考えながら、ぜひ最後まで読んでみてください。

エラーが発生するサンプルコード

下記のプログラムを実行して発生するエラーメッセージをサンプルに考えてみます。
 
エラーが発生するPHPのサンプルコード

<?php
    echo("Hello" + " World!");
?>

実行後に出力されたエラーメッセージ
PHP Fatal error:  Uncaught TypeError: Unsupported operand types: string + string in /workspace/Main.php:2
Stack trace:
#0 {main}
  thrown in /workspace/Main.php on line 2

エラーメッセージのうち読むべき箇所を特定する

皆さんだったら、何から始めますか。
 
エラーメッセージを読まずにいきなりGoogle検索に貼り付ける人もいますが、検索キーワードに過不足があるため、ほしい記事が見つからないことが多いです。
 
まずは落ち着いてエラーメッセージをゆっくり読みましょう。
 
エラーメッセージは長いこともあるので、エラー内容を端的に示す1行を見つけます。動詞が含まれている、もしくはファイル名が書かれていることが多いです。
 
今回だと、下記の1行だけ読めば解決できます。少し気が楽になりますよね。

PHP Fatal error:  Uncaught TypeError: Unsupported operand types: string + string in /workspace/Main.php:2

エラーメッセージを日本語に翻訳する

次にエラーメッセージの内容を1つずつ読み解いていきましょう。
 
これをしないと検索キーワードを正しく選べないのと、記憶が定着しないので同じエラーで何回もハマるパターンが多いです。
 
まずはGoogle翻訳でエラーの一文を訳すと下記になりました。

PHP 致命的エラー: キャッチされない TypeError: サポートされていないオペランドの種類: /workspace/Main.php の文字列 + 文字列:2

 
翻訳されない単語や分からない単語があった場合は、さらに検索します。例えば「TypeError」の「Type」とは、どんな意味でしょうか。「オペランド」とは何でしょうか。
 
単語の意味を検索してまとめてみましょう。下記は一例です。

不明な単語 検索キーワード例 意味
Type プログラミング Type とは 分かりやすく 文字列型や数値型といった型のこと
オペランド プログラミング オペランド とは 分かりやすく 値や変数のこと。「+」や「-」などの演算子以外のこと

日本語にしたエラーメッセージの意味を整理する

ここで翻訳した結果と元のメッセージを比較して整理しましょう。細かく分割すると分かりやすいです。

エラーメッセージ 意味
Uncaught TypeError 何かしら型が合わない、という意味のエラーが発生した
Unsupported operand types サポートされていない値や変数の種類だ。
string + string 文字列 + 文字列の書き方が怪しいらしい
/workspace/Main.php:2 Main.phpファイルの2行目で発生している

2行目の「”Hello” + ” World!”」という文字列をくっつける書き方はPHPのルールとして正しいのだろうか、という疑問が浮かんできます。

エラーメッセージのうち必要な部分だけ切り取って検索する

いよいよGoogle検索をしますが、検索には不要な情報があります。それは何でしょうか。
 
「/workspace/Main.php:2」です。
 
どのファイルのどの行でエラーが発生するかは毎回異なるので、Google検索をしてもほぼ一致しないためです。あなたと同じファイル名で同じ行に同じプログラムを書く人が世界に何人いるでしょうか、という話ですね。
 
「PHP Fatal error: Uncaught TypeError: Unsupported operand types: string + string」で検索します。英語の記事しか見つからないこともありますが、恐れずに右クリックで日本語翻訳しましょう。
 
例として、下記の記事を見つけました。
PHP Fatal error: Uncaught TypeError: Unsupported operand types: string + string
 
抜粋します。

2 つの数値を加算する代わりに、string 型の 2 つの値を加算しようとすると発生します。

 
PHPでは、文字列を結合するのに「+」を使うのは正しくないらしい、ということが分かりました。

解決策を調べるための検索をする

ここまで分かれば、もうすぐです。PHPで文字列をくっつけるための書き方のルールを調べましょう。
 
検索キーワード例:「PHP 文字列 くっつける サンプル」「PHP 文字列結合 サンプル」
 
検索すると、PHPでは文字列をくっつけるときに「.(ドット)」を使うということが分かりました。それではプログラムを修正しましょう。
 
修正後のプログラム

<?php
    echo("Hello" . " World!");
?>

実行すると期待通りに動くのでこれで解決です。お疲れ様でした。

まとめ

いかがでしょうか。
無意識に反射的にやっているかもしれないエラーの調査も、改めて言語化すると意外と単純ではないですよね。
 
私自身、後輩に質問される内容なら大体答えられますが、難しいエラーの場合は無駄なアプローチをして長い時間かけてしまうことがあります。奥が深いエラー調査ですが、今回のサンプルがこれからプログラミングを学ぶ方のお役に立てば幸いです。
 
 
 
 
《関連記事》

実務で日常的に使う用語20選
技術
2023.2.14(Tue)

未経験者プログラマー必見! 実務で日常的に使う用語20選

#まとめ#プログラム

実務で日常的に使う用語17選
技術
2023.5.30(Tue)

未経験者プログラマー必見! 実務で日常的に使う用語17選【第2弾】

#まとめ#プログラム

業界特有の専門用語10選
技術
2024.1.30(Tue)

IT業界しか伝わらない? 未経験が感じた業界特有の専門用語10選

#あくまで個人の見解です#まとめ#ビジネス

記事をシェア
MOST VIEWED ARTICLES