初心者向け!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ブロックでそのエラーを処理します。
GASでのthrowの使い方も復習してみてくださいね。
https://earthpg.school/gas-throw/
練習問題: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ブロックを使ってエラーをキャプチャし、続行可能な処理であることを示すことです。