*

もうエラーメッセージで挫折しない! 4つのエラーメッセージ対処法

公開日: : 最終更新日:2015/10/06 PHP, WEB全般, 講義 , , , ,

エラーメッセージで挫折

このブログで何回か書いたのですが、PHPに限らずプログラミングの独学はかなり難しいです。

その原因の1つとして、「エラーを自分で解決できない」ということがあげられるでしょう。

プログラミングってやり始めの数か月はほとんど思い通りに動きません。数行書くたびにエラー、画面を見るたびにわけわかんない英語がでてきて、やってると心が折れます(涙)

生徒さんにも「エラー対策とかないですかね・・(涙)」みたいなことをよく言われました。

ほとんどのプログラマはこういったスキルを経験を通して身につけてますから、いざ尋ねられてもわからないことがほとんどです。

そこで今回は私がプログラミングをする上でエラーメッセージ対策を紹介します。

エラーメッセージ対策その1 開発ツール

即効性がある解決法としてはエラー自体を出さない、出した瞬間に検知できるような仕組みが必要です。

そもそもエラーメッセージで多いのは単純なセミコロン忘れとか、ifのかっこがとじてないとか、変数名のスペルミスみたいなもんでしょう。

人間って自分のミスに気付かないんですよ。

生徒に写経をさせていると「何度も見て、模範解答を完全にうつしたのに、エラーが直りません!」なんてことをよく言われました。

私が見ると1分で文末のセミコロン忘れを発見とかね(笑)

文章なんかでも何度も確認したのに誤字、脱字を発見できないとかああいった類のものです。

だから気をつけても意味がありません。

大事になってくるのが開発環境自体の見直しです。

例えばコードを書いて保存した瞬間にエラーがでるとか、スペルミスを教えてくれる、などエラー自体を出さない、すぐに検知できる仕組みがある場合それを入れましょう。

エディタ、IDEの機能を生かそう

多くのエディタは標準機能でも様々な機能が入っていますし、プラグインを入れることでさらに機能を追加できるようになっています。

シンタックスハイライトとか矩形選択みたいな標準的な機能は使っていると思いますが、自動でコードをフォーマットしてくれたり、未使用の変数の色をかえてくりたり、エラーを発見してくれたりなど探してみると使ってない機能があるはずです。

そういった機能をまずは見直してみましょう。

私はPHPを書くときはgVimというエディタを使っています。

Linuxで使われているvimのWindows版みたいなもんですね。

えー正直いうとあまり初心者の方にお勧めはしません(爆)

慣れるまでは「これいじめか?」ってぐらい使いにくい。

慣れるまではすごい大変なんですけど、その分設定を書き換えたり、プラグインをいれて、カスタマイズがいろいろできます。

もっといいのは統合開発環境(IDE)ですね。IDEとはエディタをさらにパワーアップさせたようないろいろな機能がフルセットになったソフトです。

有名どころではなんといっても

  • Eclipse
  • Netbeans

でしょう。どちらもPHPに対応していますし、これ使っている現場も多いですね。

ただ、基本的には自分に合うかどうかが全てだと思います。

こういった道具の機能をもう1度見直してみましょう。

もちろん全てのエラーを発見できるわけではないのですが、これだけで単純なミスがずいぶん防げるので初心者の方やプログラミングをやりたての方はずいぶん救われるます。

エラーの発見が助かる機能一覧

人によって差はあると思いますが、下記のような機能があるとエラーが発見しやすくなります。

変数入力補完

初心者のうちで多いのが、変数名の打ち間違えですね。

プログラミングってそもそも英語ですから、慣れてません。

customerとcustomarみたいに1文字違う、ぐらいのミスは人間であればだれでもします。

ここでcuと打った瞬間に残りの文字に対して入力補完があったら便利ですし、ミスも減ります。

またIDEだと使われていない変数名は色が変わったりするので、そこで発見できます。

オートフォーマット

インデントや空白などを自動でしてくれる機能です。

これがないといちいち手でインデントを直さなくちゃいけなかったり、いらない空白を開ける(必要な空白を開けない)ことにつながり、エラーの発見が遅れたりします。

初心者の方は数十行かくとインデントが対応していないことが多いので、この機能は必須でしょう。

クオートの対応チェック

プログラミングやり始めの場合、記号表記になれていない方が多いので、クオートの対応がずれていることが多いです。$[“hoge’]とか。

シングルクオートとダブルクオートがずれていたときに色がかわったりするとすぐに気づけるので便利ですね。

全角スペース可視化

全角スペースのところの色が変わると全角スペースの発見がしやすくなります。

プログラムでは文字表示以外のところで全角スペースを使うとエラーになります。

これが非常に初心者殺しです(汗)

みためは半角スペース2つと変わらないので、発見できないと「おかしくないのに動かない」と時間だけがすぎていくことになります。

全角スペースのところだけ色が変わるなどして見えるようになればすぐに発見できますね。

コンパイルエラー検知

これは一番即効性があります。

文末のセミコロン忘れとか、人間の力だけでこれを検知するのは無理です(汗)

コードを書いて保存した瞬間にエラーメッセージが出れば、すぐにエラーを発見することができるでしょう。

もちろん全てのエラーを検知はできませんが、セミコロン忘れとか基本的な文法エラーをすぐに発見できるだけでもかなり違うでしょう。

こんなかんじで開発道具にあると便利な機能をリストアップしてみました。

Gvimは全部の機能がありますけど、一般のテキストエディタではない機能もあるでしょうね・・

その場合、やはりこだわるとなるとIDEの出番かなという気がしますね。

エラーメッセージ対策その2 デバッグ

デバッグとはバグを直すこと全般を指しますが、ここでは「データを追跡する」ぐらいの意味で使いたいと思います。

文法的なエラー(セミコロン忘れやifの対応が崩れる)が解決できたとしても、すべてのエラーが解決できるわけではありません。

ここにデータが入っているはずなのにはいっていないとか、文字化けしてるとかそういった類のエラーに悩んでいる方も多いでしょう。

その場合ソースを追って、意図したとおりのデータが入っているかどうかを確認する必要が出てきます。

頭の中だけでソースを追うのではなく、あるデータがあった場合、画面に表示してみないと意味がないです。

変数の表示

画面にデータを表示する、といってもechoでは単純な変数しか表示できません。

配列やオブジェクトなど構造までわかる関数を使ったほうがよいですね。

PHPでいうとvar_dump,print_rなどの関数が有名です。

これらの関数を使うと複雑な構造のデータまではっきり見えます。

生徒にプログラミングを教えるときは「とにかく困ったらvar_dump!」といっていましたね。

ブレークポイント→ステップ実行

var_dumpやprint_rは大変便利ですし、ある程度の経験がある方であればこれだけで事足ります。

ただ、もっとすごいのはコードをある時点で止めて、そこから1行ずつ実行させていき、データの動きをみる、というものです。

とめるポイントをブレークポイント、1行ずつ実行させていくことをステップ実行といいます。

初心者のうちだとどうしても、データの動きがわからないこともあります。

そんな場合でも1行ずつ実行させていき、変数がどうやって動いているかをみれば一目瞭然です。

IDEにはこの機能がついていますので、IDEを使っている方はぜひ使ってみましょう。(IDEを使っていてこの機能を使ってない人は少ないでしょうが・・・)

エラーメッセージ対策その3 検索スキル

ある程度なれてきて、基本的なエラーはすべてつぶせるようになってもエラーが消えることはないです。

エラーつぶしの道は果てしないのです(泣)

新しいフレームワークなどしられていないものを触る場合は必ず新種のエラーに遭遇します。

その場合、基本的にはインターネットで検索をして対処を調べることになります。

検索キーワード

単純に検索っていっても検索スキルって経験がすごく出ます。

先日、あるソフトのエラーでうんうん悩んでおり、上司に相談したら30秒で検索されました(爆)

コツとしてはできるだけ具体的なキーワードやエラーメッセージで検索をすること、です。

たとえば

PHPでいうと「Notice: Undefined variable:~」がでてきたらこのエラーメッセージそのもので検索してみると対処法にたどり着けることが多いです。

それ以外でもなんらかの固有名詞を含んでいたり、できるだけ絞った検索キーワードでさがしたほうがお目当ての記事にたどり着ける可能性が高いです。

質問サイト

どうしても解決できない場合、人に聞きましょう。

一般の仕事現場でもわからないこと、解決できないことで30分以上悩むと時間の無駄ということで怒られます。聞いても怒られるときはありますがその場合、仕事はそういうものだと我慢しましょう(笑)

ただ身の回りに聞ける人がいないとか自分が一番技術的に上、といったシュチュエーションもあると思います。

そんな場合、下記のような質問サイトで聞くのがいいと思います。

teratail

回答率は95%ほどだそうです。

ちなみに私は2回ほど使いましたが、超マニアックな内容だったためか2回とも回答はもらえませんでした(涙)

エラーメッセージ対策その4 耐性をつける

「そんなの対策じゃないじゃん」っていう声が聞こえてきそうですが、結構大事な心がけだとおもうんで書いときました。

プログラムって基本的に思い通りに動きません。

「プログラムは思った通りには動かない。書いたとおりに動くのだ」

なんて言葉があるらしいんですけど、まさにそのとおり。名言です。

最初はエラーの嵐なんですね。

だからエラーが出るのが当たり前ぐらいに思っておくのが大事です。

なんでこんなことわざわざ書くかっていうと生徒を見てるとエラーの嵐で心が折れちゃう子が多いんですよね。

ある程度やってくるとそういうもんって割り切れますけど、経験がないとこの時点で「あー自分って向いてないのかなー」みたいに思っちゃったりします。

やっているうちに慣れるさ!なプラス思考が大事だったりします。

まとめ

最後にエラーについての考えなんですが、エラーってプログラマを成長させるものだと思うんですよ。

特に単純な文法エラーではないエラーだと「なんでここでエラーがでるんだろう?」って深く悩むことになります。

私自身、その都度いろいろなことを調べたり、聞いたりしてプログラムについての理解が深まったことが何度もありました。

慣れた技術になってくるとエラーがでないのが物足りなくなったりとか・・・(笑)

「失敗は成功のもと」であるように「エラーは成長のもと」といえるんではないでしょうか?

そんな気持ちでエラーに向き合ってもらえればと思いますね。

関連記事

データを扱ってみよう その1(変数)

こんにちわ、松本です。 前回の記事は読んでいただけたでしょうか。私よりPHPに関して知識のある

記事を読む

ドキドキ本番リリース時に大切な心構え

今回はエンジニアにとって大切な本番リリースについて。 本番リリースというのはいままで開発環境(

記事を読む

プログラミングの基本ルール

ガチンコ松本です。 さて、準備が整ったところでさっそくPHPのコードを書いていきましょう!

記事を読む

XAMPPインストール

さて、XAMPPの初歩的な説明とエディタについて説明をしたところで実際にXAMPPをインストールして

記事を読む

初心者が知っておくべきプログラミングの学習法

おはようございます。松本です。 最近、体重が増えているのが悩みでして今現在71kgあります。去

記事を読む

フレームワークのメリット・デメリット

こんばんは。松本です。 昨日25日にはオフィスで第一回目の授業を開講させていただきました。広島

記事を読む

ゼロからWEBプログラミング(PHP)をマスターするのに何時間かかる?

おはようございます。松本です。 さて、本日のテーマはタイトルのとおりです。以前受講生の方に「ゼ

記事を読む

初心者でもできる!作れる!WEBサービスの開発 その2 制作体験記編

前回からの続きですが、主にプログラムの勉強目的として、簡単なWEBサービス(アフィリエイトサイト)を

記事を読む

よく使う処理をまとめよう その1 (関数)

おはようございます。松本です。 私の会社では10時半から掃除の時間でして、ここ数ヶ月ずっとやっ

記事を読む

PHPで掲示板を作ろう!(データベース編) その4 SQL編

今回はMySQLで掲示板を作ろうの続きです。前回のMySQLの講義が11/18日ですね。 2か

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

転職エージェントについて

さて、エンジニアとして転職を考えている人であれば転職エージェントを使っ

エンジニアが転職して年収を上げる方法を考えてみました。

えー前回の記事でも書きましたが、2020年2月現在転職活動中です。

2020年のご挨拶

今更ですが、明けましておめでとうございます。 2019年も2本し

自社開発>客先常駐である本当の理由

このブログでも何回か取り上げていますが、ITエンジニアの働き方としては

エンジニアにとって必要なコミュニケーション能力とは

気がついたらもう3月下旬になっていますね・・ 年末年始忙しかった

→もっと見る

  • follow us in feedly
PAGE TOP ↑