システムを作る際、エラーの度に動かなくなった挙句、必要以上に原因の究明に時間がかかってしまっては非常に問題です。
そこで今回はGoogle Apps Scriptでスクリプトを実行中にエラーが発生した場合、それを検知して処理を分ける方法についてご紹介します。
エラー発生時にすみやかに原因を発見し、迅速に対処する上で非常に重要なスクリプトの1つです。
try~catchでエラー検知
Google Apps Scriptでエラーを検知して処理を分けるには、下記スクリプトを使います。
また、「catch」か「finally」のどちらかは省略可能ですが、エラーを検知したい場合に「catch」を省略する事はあまりないような気もします。
try { 通常の処理内容 } catch (e) { エラーを検知した場合の処理内容 } finally { } |
下記のサンプル1の例はちょっと極端ですが、こちらを元にご紹介します。
・サンプル1
function errorcatch() { try { var str = ‘テスト’; Browser.msgBox(strr); } catch (e) { msg = e.message; } finally { Browser.msgBox(‘処理が完了しました’); } |
今回の例では、まず変数strに「テスト」の文字列を代入し、メッセージボックスに表示させようとしたところ、メッセージボックスに記入する変数を誤って「strr」とする事で、エラーを発生させています。
エラーが発生した場合、
} catch (e) {
の部分の処理が実行され、
msg = e.message;
でエラーメッセージを取得して変数msgに代入し、メッセージボックスに表示させています。
今回の例では下記のように表示されます。
今回はメッセージボックスに表示させていますが、エラーが発生したらメールを送信するなど、様々な用途で使えるかと思います。
} finally {
の部分はエラーが発生するしないに関わらず実行され、メッセージボックスに「処理が完了しました」と表示されます。
下記は、finallyの処理時に表示されるメッセージボックスです。