
プログラミングでエラーが出てきた…
分からない…どうすれば…
最初の頃は、こういった悩みが多いと思う。
かく言う私もそうだった…というか、現在進行形でそうだ。
今回は、エラーを対処するための基本的な考え方を見ていこう。
本記事の内容は以下の通りだ。
- プログラミングのエラー対処の流れ4ステップ
- 私だっていまだに苦労してます
完全に初心者向けなので、感覚を掴むための方法を解説している。
その点、ご了承いただければと思う。

エラー対応は結構難しいから、
できなくても落ち込まないように!
プログラミングのエラー対処の流れ4ステップ
基本的に、エラーが発生したら以下の流れで対処していく。
- まずはググる
- どこで問題が起きているか把握する
- その原因箇所を把握する
- 直す
まずはググる
エラーが出たということは、エラーメッセージも出ているはず。
その内容で、素直にググろう。
これで、まずは何が起きているのかを把握することができる。
例えば、Javaで「ArrayIndexOutOfBoundsException」と出ていたら、配列の範囲外アクセスによってエラーが出ている、などだ。
何度も繰り返し経験すれば、このように内容を見ただけで分かるようになる。
しかし、最初は分からなくて当然だ。
だから、ググって情報を知ろう。
ここは誰もが通る道なので、検索も十分されているはず。
そのため、情報を探すのにもそこまで苦労はしないだろう。
どこで問題が起きているか把握する
お次はこれ。
ソースコードの、どこでエラーが起きているかを把握しよう。
これは、実はエラーコードの中に書かれていたりする場合もある。
エラー文が英語だからと怖気づいてしまうのではなく、しっかり読み込んでいこう。
エラー文に書かれていない場合は、文字列の出力などを繰り返して、どこまで処理が通っているかを確認するようにしよう。
その原因箇所を把握する
ちょっと、一個上の節と似ているが混同しないでほしい。
一個上は、どこを実行したらエラーが出たか。
これは、どこが原因でエラーが出るようになっているかだ。
例えば、さっき出した配列の範囲外アクセスであれば、そのアクセスをしている個所がエラーの出現場所だ。
そのエラーの原因は、というと状況によって異なる。
本来0~5にしかアクセスしないのに、6にアクセスしていれば、エラーが出ている個所と同じ場所が原因となる。
それに対し、本来0~6にアクセスするのに、配列が0~5までしか定義されていなければ、その定義部分が原因だ。
要するに、どこを直すべきか、というのをここで探そう、ということだ。
直す
ここまで来れば、なんでエラーが起こっているかと、その原因…直すべき箇所が分かっている。
あとは、そこを適切な形に直してあげるだけだ。
そもそも、エラーは想定外な事象。
つまり、原因の場所でも何かしら変なことをしている可能性が高い。
直す方針は、最初のうちは比較的単純に分かるだろう。
これでも見つからない場合
たまに、これでも直せない場合がある。
本当に、どこがおかしいのか分からない、という状態だ。
その際は、とにかくググる、これに尽きる。
最初のうちは、まだ感覚が慣れていないというのもあると思うので、ひたすら調べて、知識を蓄えていってほしい。
また、周囲に相談できる人がいれば相談するのももちろんアリだ。
その際は、自分でどこまで調べて、どこから分からないかを言ってあげよう。
これに近いが、翌日の自分に任せるという手もある。
組んだ直後だと、「合っているだろう」という先入観で見つかりづらいということがよくある。
一日置けば、その先入観が薄れるので、見つけやすくなるという寸法だ。
私だっていまだに苦労してます
私は、今まで大学と大学院で6年間みっちりJavaを書き続け、今でも趣味で書いているほどやり込んでいる。
ただ、それでも未だに苦労している。
特に、今組んでいるPHPなんかではかなり悩まされていて、一つのエラーに一日潰すことだってざらだ。
それだけ、ここは難しいところだということ。
少しつまづいたからといって、落ち込むことはない。
解決できなくても、「今日ちょっと調子悪いな」くらいで済ませてしまおう。
まとめ:プログラミングのエラー対処4ステップ
最後になるが、ステップを再掲しておこう。
- まずはググる
- どこで問題が起きているか把握する
- その原因箇所を把握する
- 直す
上にも書いた通り、かなり難しいところだし、経験がものを言うことだってある。
できなくても落ち込まず、気楽に取り組んでいこう。
また、エラーを対処できたときの爽快感もなかなかに気持ちがいい。
是非、そこを目指して頑張っていこう。
なお、Twitterで相談してくれれば、私でよければ相談に乗ることはできる。
解決できる…と確約はできないが、一緒に悩むくらいはできる。
ちなみに、私が対応できる言語は、
- Java
- HTML(少し)
- CSS(少し)
- JavaScript(少し)
- PHP(少し)
こんな感じだ。
少しが多いのは…まあ、軽くかじった程度なので。
どうしても分からない…となれば、気軽に相談してきてほしい。
コメント