エラーメッセージが分からない
“3つの道筋を活用してプログラムの問題から早く開放されましょう!“では、エラーメッセージの意味が分からなかった場合は、その後にプログラムを修正してみるなどして、別の角度で調査を進めていく方法を説明しています。
しかし、以下のような場合で通常の流れで進められないことがあるかと思います。
・ 何度も修正したり試行錯誤しても分からない
・ 時間がかかるなどの理由でプログラムにprint()のようなデバッグ用の修正ができない
・ 『なぜか直りました』ではなく、説明のためにエラーの原因を理解する必要がある
このような場合は、時間も差し迫っているでしょうから、もはやきくべき人にきくしかありません。楽をするということではなく、知恵を借りて自分も理解して早く解決に導くということです。
プログラム自身が出しているエラーではないか確認する
まず、誰かにきく前に、実はエラーメッセージを出していたのが、自分のプログラム自身だということがないか確認します。
特に、自分ひとりが作成しているプログラムならば、まだ気づくかもしれませんが、他の人が作ったプログラムを自分が修正したりしていた場合、このケースになることは良くあります。
自分のプログラムが出していないかを調べるには、ソースコード内をgrepコマンドや開発ツールの検索機能で調べましょう。
grepコマンドの場合
WindowsでUNIX疑似環境やサブシステム(Cygwin,MinGW,MSYS2,WSLなど)をインストールして使っていれば、この方法を使うことができます。
grepコマンドの生み元であるLinux, SolarisなどUNIX系OSでは、言うまでもなく同様に使うことができます。
下記は、-i (大文字小文字区別なし=ignore case), -r (ディレクトリ配下を再帰的に検索=recursive)で検索する指定です。
grep -ir <エラーメッセージ> <ディレクトリ>
開発ツールの場合
以下はMicrosoft Visual Studio Codeで検索した例です。
見ての通り、簡単に検索できて結果がわかりやすく表示されます。
Microsoft Visual Studio Code以外にも、最近の開発ツールでは同じような検索の機能が備わっています。
Q&Aサイトに質問する
では、プログラミング専門のQ&Aサイトに質問しましょう。
おすすめのQ&Aサイト
Q&Aサイトの中でも、以下のサイトがお勧めです。
・ stackoverflow(スタックオーバーフロー)
URL(日本版): https://ja.stackoverflow.com
URL(海外版): https://stackoverflow.com
日本語で質問する場合は、日本版が質問しやすいですが、海外版のほうが回答者
が圧倒的に多いため、回答が速いです。
Weblio翻訳、Google翻訳などを別ウィンドウで開きながら翻訳して海外版に質問
するのがおすすめです。
・ teratail (テラテイル)
URL: https://teratail.com
小生は使用経験がありませんが、どんな質問でも簡単にできるという手軽さが良い
ようです。
質問時にこれだけはいれとこ!
質問する人は早く解決したいので、回答者が知らないといけない情報をあまり伝えられていないことに気づいていないことが良くあります。
回答者側も、できるだけ今ある情報から言ってあげられることはないかと考えてしまうことがあり、双方が消耗することになります。
そのため、せっかく回答してくれる回答者が悩まずに回答できるよう、以下のことだけは質問に盛り込んであげてください。
使っているプログラミング言語とそのバージョン
言語によって、それぞれ以下の方法で表示できます。
小生も全ては知りませんが、書ける範囲で記載していますので、ご容赦ください。
python | python –version |
Java | java -version |
Ruby | ruby -v |
PHP | Webサーバ(自PC含む)にログインしてPHPプログラムを実行している場合 php -v Webサーバにログインできない状態で確認する場合 ブログのレンタルサーバなどでは、レンタルサーバの管理パネルを見る と出てくると思いますが、ない場合は下記へ 下記の~.phpファイルを作成しWebサーバに配置してhttp://…./~.phpに アクセスして実行。うまく動作しないときは .htaccessのリダイレクトや phpファイルの実行権を疑う。 <?php phpinfo(); ?> |
Javascript | Webブラウザの種類とバージョンで決まる。 ここには記載できないので調べてください |
perl | perl -v |
C | 使っているCコンパイラによる。 GNU-C の場合 gcc –version Microsoft Visual Stdioの場合 アプリ検索ボックス(Win10), チャームバー(Win8)から”vs”とするか、 スタートメニューから ”Microsoft Visual Studio XX”を見つける。 大抵はこのバージョンが分かれば十分。 |
C++ | GNU-C++ の場合 g++ –version Microsoft Visual Stdioの場合は、Cと同様 |
C# | .NET Frameworkのバージョンで決まるため、それを伝えます |
go | go version |
kotlin | kotlin -version |
使っているOSとバージョン
Windows | – [コントロールパネル]-[システムとセキュリティ]-[システム]で表示 – コマンドプロンプトから winver コマンドを実行 |
UNIX/Linux | cat /etc/*release と uname -a を実行 |
プログラムのソースコード
全てでなくても、ソースコードの一部を見せてあげましょう。
そして、どこを変えたときに問題が発生するようになったかが分かっている場合は、そのことも伝えましょう。
エラーメッセージ
肝心のエラーメッセージを伝えます。
エラーメッセージが複数出ている場合は、それも伝えましょう。
最後の回答時にはお礼を言いましょう!
最後の回答があったときにはお礼を言って、いいねやチップ、ベストアンサーが付けられる場合は付けてあげてください。
回答者はそれが欲しくて活動されているのですから。
識者を探し出して教えてもらう
最終手段です。そして最も安易な方法です。
使っている言語の識者を
・ 周囲から探す
・ Webで検索する
・ SNSなどを通じて探し出す
ようにして教えてもらいます。
小生のほうでも受け付けていますので、ホームページからメールでご連絡いただきますと、ご相談に乗ります。お気軽にご連絡ください。
まとめ
エラーメッセージはどうしても見逃してしまってプログラミングを先に進めたいという衝動に駆られます。
しかし、焦らずにエラーメッセージが訴えている内容に耳を傾け、理解しようとされることをお勧めします。
やることは、
・ プログラム自身が出しているエラーではないことを確認する
・ Q&Aサイトに質問する
・ 識者を探し出して教えてもらう
だけです。
このQ&Aへの質問は、意外と他人にご自身がしてもらいたいことを上手く伝える練習になりますので、ここは一つじっくりと聞き方を考え、取り組んではいかがでしょうか。
コメント