earthpg:GAS専門のプログラミングスクール

初心者向け!GASでエラー処理をスキップ・終了・スローする方法

GASを使っていると、時々エラーが出てきてどう対処すればいいのかわからなくなっちゃうんだよね。特にエラー処理ってのが…
猫男
猫男
catman
catman
なるほど、GASのエラー処理の基本について教えてやろう。エラーをスキップしたり、プログラムを終了させたり、あるいはエラーをスローする方法についてわかりやすく説明するさ。

GASのエラー処理とは?

GAS(Google Apps Script)でコードを書くとき、すべてが順調にいかないこともあります。そんなときに必要なのがGASのエラー処理です。

GASでエラーをスキップする

まずは、エラーが発生してもそのまま次の処理に行きたいときの方法です。

function skipErrorExample() {
  try {
    var result = riskyFunction(); // ここでエラーが発生する可能性がある
  } catch (e) {
    Logger.log('エラーをスキップします: ' + e.message);
  }
  Logger.log('エラーをスキップして次の処理へ');
}

このスクリプトでは、try-catchを使ってエラーをキャッチし、一旦ログに出力した後でエラーをスキップして次の処理へ進みます。

GASでエラーにより処理を終了する

次に、エラーが発生したらそれ以上の処理をしないようにしたい場合です。

function stopOnErrorExample() {
  try {
    var result = riskyFunction(); // ここでエラーが発生する可能性がある
  } catch (e) {
    Logger.log('致命的なエラーのため処理終了: ' + e.message);
    return; // ここで処理を終了する
  }
  Logger.log('このログは表示されない');
}

この場合、returnを使ってエラーが発生した場合に処理を終了させます。

エラーが出たら必ずしも止める必要はないんだね。次の処理に進むって手もあるのか!
猫男
猫男

GASでエラーをスローする

最後に、意図的にエラーをスローさせたいときの方法です。

function throwErrorExample() {
  try {
    if(someCondition) { // ある条件が合えばエラーをスロー
      throw new Error('意図的なエラー');
    }
  } catch (e) {
    Logger.log('スローされたエラーをキャッチ: ' + e.message);
  }
}

throwを使って意図的にエラーを発生させ、catchブロックでそのエラーを処理します。

catman
catman
特定の条件下でプログラムの動作を確認するのに使えるんだ。これを使えばデバッグも楽になる。

練習問題:GASでエラーをスキップする処理を書いてみよう

以下の処理の中で、エラーが発生したときにログにエラーメッセージを出力し、そのまま次の処理に進むようなスクリプトを書いてください。

1. 不安定な処理(模擬的にランダムでエラーを投げる)
2. エラーが発生したときのメッセージをログに出力
3. エラーがあっても続行し、続くテキスト「続行します!」をログに表示

解答・解説

function skipPractice() {
  try {
    var chance = Math.random();
    if (chance < 0.5) {
      throw new Error('模擬エラー');
    }
    Logger.log('不安定な処理、成功しました。');
  } catch (e) {
    Logger.log('エラーを検知: ' + e.message);
  }
  Logger.log('続行します!');
}

このスクリプトでは、ランダムでエラーを投げる処理を模擬し、発生したエラーをキャッチして、エラーメッセージをログに出力します。その後の処理も続けて実行します。ここで重要なのは、try-catchブロックを使ってエラーをキャプチャし、続行可能な処理であることを示すことです。

よし、これでエラー処理も恐くなくなってきたぞ!ありがとう、catman!
猫男
猫男
catman
catman
いつでも呼んでくれ。次はもっと高度なトピックで再会しよう!