【初心者向け】プログラミングのエラーが分からないと嘆く前に

思考系

プログラミングエラーが出てきた…

分からないどうすれば

最初の頃は、こういった悩みが多いと思う。

かく言う私もそうだった…というか、現在進行形でそうだ。

今回は、エラーを対処するための基本的な考え方を見ていこう。

本記事の内容は以下の通りだ。

  • プログラミングのエラー対処の流れ4ステップ
  • 私だっていまだに苦労してます

完全に初心者向けなので、感覚を掴むための方法を解説している。

その点、ご了承いただければと思う。

シノ
シノ

エラー対応は結構難しいから、
できなくても落ち込まないように

スポンサーリンク

プログラミングのエラー対処の流れ4ステップ

基本的に、エラーが発生したら以下の流れで対処していく。

  1. まずはググる
  2. どこで問題が起きているか把握する
  3. その原因箇所を把握する
  4. 直す

まずはググる

エラーが出たということは、エラーメッセージも出ているはず。

その内容で、素直にググろう

これで、まずは何が起きているのかを把握することができる。

例えば、Javaで「ArrayIndexOutOfBoundsException」と出ていたら、配列の範囲外アクセスによってエラーが出ている、などだ。

何度も繰り返し経験すれば、このように内容を見ただけで分かるようになる。

しかし、最初は分からなくて当然だ。

だから、ググって情報を知ろう

ここは誰もが通る道なので、検索も十分されているはず。

そのため、情報を探すのにもそこまで苦労はしないだろう。

どこで問題が起きているか把握する

お次はこれ。

ソースコードの、どこでエラーが起きているかを把握しよう。

これは、実はエラーコードの中に書かれていたりする場合もある

エラー文が英語だからと怖気づいてしまうのではなく、しっかり読み込んでいこう。

エラー文に書かれていない場合は、文字列の出力などを繰り返して、どこまで処理が通っているかを確認するようにしよう。

その原因箇所を把握する

ちょっと、一個上の節と似ているが混同しないでほしい。

一個上は、どこを実行したらエラーが出たか

これは、どこが原因でエラーが出るようになっているかだ。

例えば、さっき出した配列の範囲外アクセスであれば、そのアクセスをしている個所がエラーの出現場所だ。

そのエラーの原因は、というと状況によって異なる。

本来0~5にしかアクセスしないのに、6にアクセスしていればエラーが出ている個所と同じ場所が原因となる。

それに対し、本来0~6にアクセスするのに、配列が0~5までしか定義されていなければその定義部分が原因だ。

要するに、どこを直すべきか、というのをここで探そう、ということだ。

直す

ここまで来れば、なんでエラーが起こっているかと、その原因…直すべき箇所が分かっている。

あとは、そこを適切な形に直してあげるだけだ。

そもそも、エラーは想定外な事象。

つまり、原因の場所でも何かしら変なことをしている可能性が高い

直す方針は、最初のうちは比較的単純に分かるだろう。

これでも見つからない場合

たまに、これでも直せない場合がある。

本当に、どこがおかしいのか分からない、という状態だ。

その際は、とにかくググる、これに尽きる。

最初のうちは、まだ感覚が慣れていないというのもあると思うので、ひたすら調べて、知識を蓄えていってほしい。

また、周囲に相談できる人がいれば相談するのももちろんアリだ。

その際は、自分でどこまで調べて、どこから分からないかを言ってあげよう。

これに近いが、翌日の自分に任せるという手もある。

組んだ直後だと、「合っているだろう」という先入観で見つかりづらいということがよくある。

一日置けば、その先入観が薄れるので、見つけやすくなるという寸法だ。

私だっていまだに苦労してます

私は、今まで大学と大学院で6年間みっちりJavaを書き続け、今でも趣味で書いているほどやり込んでいる。

ただ、それでも未だに苦労している

特に、今組んでいるPHPなんかではかなり悩まされていて、一つのエラーに一日潰すことだってざらだ。

それだけ、ここは難しいところだということ。

少しつまづいたからといって、落ち込むことはない。

解決できなくても、「今日ちょっと調子悪いな」くらいで済ませてしまおう。

まとめ:プログラミングのエラー対処4ステップ

最後になるが、ステップを再掲しておこう。

  1. まずはググる
  2. どこで問題が起きているか把握する
  3. その原因箇所を把握する
  4. 直す

上にも書いた通り、かなり難しいところだし、経験がものを言うことだってある。

できなくても落ち込まず、気楽に取り組んでいこう。

また、エラーを対処できたときの爽快感もなかなかに気持ちがいい。

是非、そこを目指して頑張っていこう。

なお、Twitterで相談してくれれば、私でよければ相談に乗ることはできる。

解決できる…と確約はできないが、一緒に悩むくらいはできる。

ちなみに、私が対応できる言語は、

  • Java
  • HTML(少し)
  • CSS(少し)
  • JavaScript(少し)
  • PHP(少し)

こんな感じだ。

少しが多いのは…まあ、軽くかじった程度なので。

どうしても分からない…となれば、気軽に相談してきてほしい。

コメント

タイトルとURLをコピーしました