#はじめに
プログラミングや環境構築等をしていると、ほぼ必ず発生するエラー。
私はプログラミングで一番大切なのは、エラーを読んで解決する能力だと思っています。
(個人的な意見です。)
経験が浅いと、エラーを読んでもよくわからない、調べ方が分からない、といった悩みがあると思います。
私もプログラミングを始めてすぐは、エラーが出たらどうしたらよいかわからず手が止まっていました。
英語の能力も高くないので、よくわからない単語が並んでいる英文が何行も出力されるのが憂鬱でした。
しかし、エラーの調べ方のコツをつかめるようになると自力でエラーを解決できるようになりました。
この記事ではエラーが出力されたときに、何をすればいいかを順に書いていきます。
##対象者
プログラミングを初めてすぐ初心者。
エラーが出ると手が止まってしまう人。
##投稿者
プログラミングを初めて1年半の新人エンジニアです。
まだ知識も乏しいため、間違っている点があったらご了承ください。
もし「もっといい調べ方がある」、「この記事間違っている」というご指摘がある方は
ぜひコメントをお願いします。
#1.エラーの調べ方
##a.エラーが1行の時の調べ方
###(1)エラー1文全部コピーして検索する。
具体的なエラーが書いてあり、特定の言語のみで出力されるエラーの場合この方法で原因が分かることが多いです。
このように検索すると、stack-overflowのページが検索上位に出てくることが多いです。
stack-overflowはプログラマーの知恵袋のようなサイトで、
分からないことを投稿すると、詳しい人が解決方法を教えてくれます。
stack-overflowを読めば原因と解決方法が同時に分かることが多いです。
とても便利なサイトですが、ほぼ全ての投稿が英語のため、
英語が苦手な人は見るだけで頭が痛くなると思います。。
(私もそうなので。。ただでさえ分からないのに、英語とか本当に無理)
そんな時は自動翻訳に頼りましょう!!
知っている人も多いと思いますが、よく使うツールを紹介します。
・Google翻訳
Chromeを使っている場合、ブラウザ上で翻訳されるので使いやすいです。
ただ訳の正確性に少しかけると思います。
また原文と和訳を見比べたい時に、いちいち操作が必要なため使いにくい時もあります。
・DeepL
最近はもこちらを使うことが多いです。
砕けた文章を翻訳する場合DeepLの方が正確だと思います。
(stack-overflowは砕けた表現が多いので)
サイト上でも翻訳できるのですが、DeepLのアプリがおすすめです。
翻訳したい箇所を選択し、ctrl + cを2回押すとアプリが自動的に起動し翻訳してくれます!!
###(2)エラーに使っている言語名、フレームワーク等を加えて検索
(1)で出てこないときは、他の言語のエラーがまぎれていることが多いです。
その時は(1)に言語、フレームワーク等を加えて検索しましょう。
###(3)エラーの中から単語を抜き出し使っている、言語名等を追加
エラーの中からなんとなくエラーの原因になりそうな言葉を抜き出し、
(2)のように言語等を加えて検索します。
そうするとエラーの原因になりそうなことが検索結果に出てきます。
##b.エラーが複数行あるとき
###(1)エラー原因が書いてある場所を探す
複数行出力されるエラーは原因のが書いてある箇所が分かりにくいと思います。
また何十行もあっても、エラー原因がかいてある部分は大体2、3行です。
エラーの原因が書いてあるのは
「Error」「Exception」がついている部分の最初か最後に出力されてあることが多いです。
少し大変ですが、上から順に読んでErrorやExceptionと書いてある部分を探してください。
見つけられたら、その部分を重点的に読めばよいのですが長くわかりにくいと思います。
エラーの構造は以下のようになっていることが多いです。
発生した問題>問題の具体的な内容>エラーの具体的な内容
※この順番と異なることもあります。
エラーの原因が見つかれば、1行の時と同様に(2)(3)のように検索すれば大丈夫です。
#2.検索しても分からなかったとき
1.の方法で見つからなかった場合、出力されたエラー以外から原因を探ります。
##(1)環境差分がないか探す
バージョン、OS、使っているエディター等によってエラーが出ることがあります。
その場合は使っている言語のバージョンや、「{言語名} Windows」のように検索すると
原因が見つかることがあります。
##(2)公式ドキュメントを読む
公式ドキュメントが1番正確な情報で、情報量も多いと思います。
関係がある場所までたどりつくのが大変だと思いますが、
読み進めていくと仕様の理解が深まり原因がみつけやすくなります。
#3.誰かに質問するとき
もし身近に質問できる人がいる場合、以下のリンクに記載されていることに注意しましょう。
https://twitter.com/akiraokumura/status/1253144995197935617?s=21
内容を抜粋すると
質問するときは
・実行した内容(ソース、コマンド等を具体的に)
・エラー内容
・実行環境
を伝えること。
とのことです。
もし身近に質問できる人がいない場合、
teratailで質問することもできます。
#参考リンク
エラーメッセージの読み方と対処, 検索や質問の原則が分かりやすいので、とてもおすすめです。
こちらの記事の方が具体的に書いてあるのでとても役に立つと思います。
#おわりに
先輩から教えてもらったエラーの調べ方がとても分かりやすかったので、まとめてみました。