『GAS 完全入門』基礎③ ★☆☆ – ビジボット

ビジネス

はじめに

今回のビジボットは、しばらく長期的にやっている『『Google Apps Script 完全入門』を買って基礎入門② ☆☆☆ – ビジボット』の続きを書いていきます!
インプットする項目が多いですが、その分GASを今後やっていく上で必要な基礎をしっかりと学べているのでしっかりと記事としてアウトプットしていきます!

↓↓前回記事↓↓

『GAS 完全入門』基礎② ★☆☆ – ビジボット

2019年2月26日

それでは早速始めていきます!

1.例外処理

GASも通常のプログラムもそうですが、想定しないエラーが発生することがあります。
例えばGoogleFormでアンケートを答えた結果を引数で渡して処理が実行するはずなのに、値を渡さないで実行された場合にエラーが発生してしまいます。
このように発生するエラーをGAS(JavaScript)では例外と言います。

発生する要因は数多いため、それら要因を全て潰していてはコードが膨大になって本来やらないければいけないコードの記述が一切できなくなります。
そのため、この例外処理がとても便利なんです。

実行結果はこんな感じ。

エラー画像 - ビジボット
エラー画像 – ビジボット

GAS(JavaScript)で例外処理を行う場合は、『try…catch…finally文』を使います。

『try{}ブロック』内で例外が発生した場合、すぐに『catchブロック{}』に処理が移ります。
『finally{}ブロック』は例外が発生しなくても実行されるので、不要であれば省略可能です!

※この時、変数eには例外で発生したErrorオブジェクトが渡されて、Errorオブジェクトのmessageプロパティにあるエラーメッセージが表示されてます

ログ結果はこんな感じ。

ログ結果

例外は発生したものを受動的に検知して利用するだけではなく、スクリプト内で自ら進んで発生されることもできます。その場合、『throw文』を使います。例外を発生されることを『例外をスローする』とも言います。

※まさかエラーメッセージも操れるとは思いもしませんでした(笑)

実行結果はこんな感じ。

例外をスローする - ビジボット
例外をスローする – ビジボット

とある処理を記述している箇所に以下コードを追加することで、どこでエラーが発生したかがわかるようにできるかな?とも思いつつ、そうだとしても結構考慮ながらGASを記述しないとダメなんだなと実感しました。(笑)

ログ結果はこんな感じ。

2.関数について

関数については少し前に実施した『GASの初心者レッスン』に様々な関数を用意してます。
以下関数はどれも関数の宣言をしたものを呼び出して実行する処理です。

GASの初心者レッスン★☆☆ - ビジボット

GASの初心者レッスン★☆☆ – ビジボット

2019年2月23日

関数を呼び出して処理を実行する際に、実行後処理を戻す際に値の受け渡しを行うことができます。
まず渡す値のことを『引数』といい、呼び出した関数から受け取る値を『戻り値』と言います。今までは引数は何度か紹介してますが、戻り値は一度も実施したことなかったので試してみます。

ログ結果はこんな感じ。

ログ結果

値渡しとは…

引数として渡す前の値がセットされている場合、実際にデータが格納されている場所はメモリ上のアドレスを確保してます。(この場合『アドレスA』)
次に値を受け取った値はアドレスAと同じメモリ上のアドレスをみているわけではなく、受け取った値を別のアドレスに複製して同じ結果にしています。(この場合『アドレスB』)

そのため、『アドレスB』の方に変更を加えた場合数値の変動はしますが、もう片方のアドレスには影響がありません。そのため実行結果がそれぞれ異なってます。
※『数値』、『文字列』、『真偽』、『null』、『undefined』の『プリミティブデータ型』は全て値渡しです

参照渡しとは…

値渡しと逆で渡す前と渡した後もアドレスは同じものをみているので、変更をかけた場合でも同様の結果を求めることができます。
※『オブジェクト』、『配列のデータ』は全て参照渡しです

ログ結果はこんな感じ。

ログ結果

今回はここまでです!
エラーに置ける『try..catch』、『値渡しと参照渡し』についてしっかりと理解することができました。
ただ、理解はしたけど色々コード書かないと習得はできなさそうだなと実感…

最後までお付き合い頂き、ありがとうございました!!