【エラーメッセージとデバッグ】エラーが出てしまったときの対応方法

業務の効率化のためのプログラミング入門」というシリーズの記事です。

前回は値をまとめて扱うことができる配列について学びました。

今回はエラーが出てしまったときの対応方法について解説します。

エラーの種類

皆さんもいままでプログラムを実行していく中で、エラーが出て思ったように結果が表示されないことがなかったでしょうか?

プログラムの書き方や入力するデータに誤りがあったりすると、エラーが起こりプログラムの実行ができなかったり、期待したような結果が得られないことがあります。

エラーには大きく分けて2種類あり、それぞれで対処方法があります。

エラーの種類対処方法
構文エラープログラム実行時、エラーが発生した行番号が表示されるので修正。
実行前にGASのエディタ上でエラー部分と理由が指摘されることもあるので実行前に確認する。
実行時エラーデータによってはエラーが発生しないので、発生条件を特定する。
プログラム実行時、エラーが発生した行が表示されるので確認。

構文エラー

プログラムの構文が間違っている場合がこちらに該当します。

構文の間違い(エラー)は、必ず実行時にエラーが表示されます。その際にエラーが存在する行番号とエラーの理由が表示されます。それを手掛かりにエラーを修正していきます。

例えば、このプログラムには文法エラーが1つ含まれています。パッと見でわかりますでしょうか?

プログラム

function main() {
  const name = "佐藤"
  console.log("お名前:" + name)
}

まずこの状態では、エラー部分は見つけられないでしょう。

では、GASのエディタにプログラムをコピペして実行してみましょう。

プログラム実行されずにこのような状態になったと思います。

まずはエディタを確認しましょう。3行目の「+」の部分に赤下線が付いています。

つまり、今回はこの部分がエラーの原因であることがわかります。

この赤下線の部分、一見して半角の「+」に見えますがよく見てみると全角の「+」です。

そのため全角の部分を半角に修正してあげればこのエラーは修正されます。

GASのエディタを使うことによって、自分の目では発見できないエラーを機械的にチェックして発見することができます。エディタの機能を有効活用することでプログラム開発が効率よくできるようになるので積極的にこのような機能は活用していきましょう。

実行時エラー

次は実行時のエラーとその対処方法を見ていきましょう。

プログラム

function main() {
  const name = "佐藤"
  console.log("年齢:" + age)
}

このプログラムを実行するとこのようなエラーが出力されます。

エラーは出力は以下の通りです。英語で理解しづらいですが、一行ずつ見ていきましょう。

ReferenceError: age is not defined
main	@ コード7.gs:3

1行目は「age」という変数が未定義ですという意味です。

2行目は「コード7.gs:3」はコード7.gsファイルの3行目にエラーの原因がありますという意味です。

つまり「コード7.gs 」ファイルの「3行目」の「age変数が未定義」なのでエラーが発生しました。ということです。

エラーを修正するために、name変数の代わりにage変数を宣言して数値を格納しましょう。

function main() {
  const age = 20
  console.log("年齢:" + age)
}

実行してみると、今度は期待通りに年齢が出力されたと思います。

エラーで出力される内容は「エラーメッセージ」と呼ばれ、エラーを解消する大切な手がかりとなります。エラーが発生したらまずはこのエラーメッセージをよく確認するようにしましょう。

まとめ

今回は「エラーが出てしまったときの対応方法」を紹介しました。

実際にプログラム開発の現場では、今回のようにエラーを簡単に解決できるケースはあまりなく根気よくエラーメッセージを確認してさまざまな角度から原因を考察する必要があります。

ですが、基本はいつでも「エラーメッセージをよく見て内容を正しく理解する」ことです。

これから学習を進めていくうえで多くのエラーと遭遇すると思いますが、今回の基本を忘れないようにしましょう。

連載目次

次の記事は「確認問題」です。