予期できるエラー(Blankへの参照など)は事前チェックで防ぐべきだけど、どうしても予期せぬエラーは発生してしまう。
そんなエラーの発生を受け取るために、Power Automateでは「スコープ」を使用するみたい。
スコープとは
アクションのブロックをカプセル化し、アクション内部の最後のターミナル状態 (成功、失敗、キャンセル) を継承します。
とあるようにスコープはフローを1つのまとまりとして見せてくれる。
フローがかなり見やすくなるのでとても便利だが、スコープは例外の受け取りにも使用できる。
例外処理の書き方
一言で表すと
「エラーが発生しそうな処理をスコープで囲い、後ろにエラー発生時の分岐を追加する」
だ。
エラーが発生しそうな処理をスコープで囲う
こんな感じで処理をスコープで囲う。
もちろん2つ以上の処理を入れることも可能で、意味を持った単位で処理をくくるとフローが見やすくなるのでおすすめ。
スコープの下に並列で失敗した際の処理を追加する
スコープ内の処理が成功したときの処理と、失敗したときの処理を並列で追加する。
実行条件の構成
失敗したときの処理の設定を開いて、「実行条件の構成」を選ぶ。
実行条件の成功を外し、失敗を設定する
実行条件の成功を外し失敗を設定することで、スコープ内の処理が失敗したときにこの処理が呼ばれるようになる。
今回はスキップされた(フローのさらに上のほうでエラーが発生した)ときや、タイムアウトのときも呼ばれるようにしている。
フローを終了する
フローを終了し、必要に応じてエラーを呼び出し元に知らせる。
これで呼び出し側でどんなエラーが発生したか予測できるようになる。
まとめ
ちゃちゃっと作れるのがPower Automateとかの利点だから例外処理を書くことは少ないかもしれないけど、こんな方法もあるって知っておくのも大事かなと。もちろんエラーが起きないのがベスト。
コメント