プログラミング研修で、「エラーが発生して、どうしたらよいですか?」と相談を受ける機会が多々あります。
エラーに慣れていない人は、期待通りにならないと「エラーが発生した!どうすればいいか分からない!」と思考停止に陥ることが多いと思います。
相談されたときに「発生しているエラーの整理」を手伝っていますが、このときに行っている整理の方法を紹介します。
悩まされるエラーの種類
プログラミングに慣れていない人だと「想定していないこと」が「エラー」とひとくくりになりがちですが、大きく分けると2つになります。
- コンパイルエラー(コンパイルに失敗する)
- 実行したときに期待通りに動作しないエラー(プログラムが止まる、間違った値を表示するなど)
まずは、この2つが見分けられるようになりましょう。次に行う対処方法が分かります。
コンパイルエラー
プログラムをコンパイルしたときに発生するエラーです。
プログラムの開発環境で「ビルド」や「コンパイル」をしたときに「正しくコンパイルできませんでした、この部分がおかしいです・・・」のようなメッセージが表示されます。
タイミング)
プログラムの開発環境で「ビルド」や「コンパイル」を行ったとき。
原因)
プログラムの構文が間違っていることが多いです。
対処方法)
コンパイル時のメッセージをインターネットやChatGPTで調べてみましょう。
実行したときに期待通りに動作しないエラー
例えば、プログラムを実行したら「10」と表示することを期待したけど、実行したら「3」と違う値を表示するような場合です。
タイミング)
プログラムを実行したとき。
原因)
プログラムの構文は合っているが、間違った値を入れるなどの欠陥(バグ)がある。
対処)
やってしまいがちなのが「プログラムをジーッと眺めてバグを見つけようとする方法」ですが、プログラミング経験が少ない人には難しい方法なので、デバッグを行いましょう。
デバッグとは?
デバッグとは、プログラムのバグ(欠陥)を見つけて修正する作業です。
プログラムが期待通りに動作しない場合、開発者はプログラムのバグを特定、修正します。
「プログラム開発のほとんどはデバッグ」という人もいるほど大切な作業です。
デバッグが速い人はプログラムの開発スピードが速いといっても過言ではないように思います。
デバッグのコツ
- 仮説を立てて検証する
- 「ここまで合っている、ここから間違っている」を見つけ出す
プログラムの開発環境にはたいていデバッグ機能があり、実行中のプログラムを途中で止めて、変数の値を確認することができます。
この機能を使って、以下を行います。
1.プログラムの「この1行を実行したら値はこうなるハズ」を明確にする
2.プログラムを途中で止めて値を確認する
3.期待通りなら1に戻る
デバッグをすれば一回ですぐにバグが見つかるわけではありません。
最初のうちは面倒でも地道に1行毎に確認してみましょう。
あえて面倒なことをすることで「こうやったらもっと効率が良いのでは?」とアイデアが浮かびます。
まとめ
まずは最初のステップとして「コンパイルエラー」か「期待通りの動作しないエラー」のどちらか見分けられるようになりましょう。
期待通りに動作しないエラーの場合は、プログラムをジーッと眺める時間は10分までとして、過ぎたら「デバッグ」を行いましょう。
デバッグは「なんとなくやる」のではなく「仮説と検証」を心がけましょう。
面倒でも「この時点ではこうなっているハズ」を紙やテキストに書き出してから丁寧に確認していきましょう。
最初から一目でバグを見つけられる人はいません。まずは地道な方法でも自分でバグを見つけて解決した経験を積んでいきましょう!