はじめに
ノベルワークスのつつみんです。12月に入社し、研修中です。初心者なのでカリキュラムとして、cybozu developer networkのチュートリアルに取り組んでいます。
今回は、チュートリアルに取り組む中で、try/catchについて検証した結果をまとめていこうと思っています。
ここからどんどん深めていくのを目標にしています。
Promiseとasync/awaitで非同期処理をしてみよう
kintoneカスタマイズで非同期処理をしてみよう
try/catchについて検証してみた
準備
商品アプリ1と商品アプリ2を作成
取得した商品名を転記する文字列1行フィールド作成
2つ目の処理でエラーがでるようにする
try/catchがある場合とtry/catchがない場合の比較
結果
try/catchがある場合は、kintoneの画面に1つ目の処理の結果『商品1』が出力されている。
try/catchがない場合は、kintoneの画面に1つ目の処理の結果『商品1』が出力されていない。
まとめ
try/catchがある場合は、2つ目の処理でエラーがでた場合、3つ目の処理をとばしreturn eventされるため、1つ目の処理はレコードに反映されています(商品1)。
try/catchがない場合は、2つ目の処理でエラーがでた場合、それ以降は実行されず、return eventされないため、レコードには成功している1つ目の処理も反映されていません。
try/catchがない(上記のコードの)場合は、エラーが発生した場合、そこで処理が止まってしまう点に注意が必要です。
try/catchがある(上記のコードの)場合は、エラーが起こった場合でもreturn eventしてしまうため、アプリを使用しているユーザーがエラーに気づかない可能性があります。
実際のkintoneカスタマイズでは
catchの使い方として「なんかエラー出たから処理中断して、ユーザーに教えよう」っていうのが多いです。
try {
~
} catch(error) {
event.error = "なんかエラー出たよ: " + error.message
return event;
}
おわりに
実際に手を動かすことの大切さを痛感しました。ドキュメントを読んで理解はした気でいました。(アプリを作ったりするのが面倒だなと少し思ってしまっていました。)
でも、実際にアプリを作ってkintoneの画面上で確認することで、よりしっかり理解できたような気がします(もちろん、まだまだですが。)
教訓は、手を動かそう!!です。
次の課題に向けて頑張ります!