サイトアイコン Power Automate サポート

ブロック エラー発生時

Microsoft Docs

デスクトップ フローで使用可能なフロー制御アクションについて説明します。
- learn.microsoft.com

業務での利用頻度

★★★★★ ほぼ毎回使用します

オススメ度

★★★★★ 「ブロックエラー発生時」にて特定の処理部分を囲んでおけばエラーが起きたときにあらかじめ設定したエラー発生時の対応を自動で行ってくれるので、フローがエラーで止まらずおすすめです

用途・目的

「ブロック エラー発生時」アクションは、一定範囲内のアクションでエラーが発生した場合の動作をまとめて設定することが可能なアクションであり、次のような目的で主に使用します

・エラーでフローが止まることを防ぐ
一部処理が失敗したら、再試行したり、エラーが発生した処理を飛ばすなどを行い、その後の処理を続けられます
例えば、削除対象のファイルが存在しなかった場合に、「削除するものがなかった」と判断して、そのまま次の処理へ進めるように設定が可能です

・複数のアクションに共通のエラー処理を設定する
複数のアクションを「ブロックエラー発生時」アクション内に囲むことで、囲んでいるどのアクションでエラーが起きても同じエラー処理を行うことができます

・エラー発生時に記録やサブフローの実行を行う
エラーが発生した場合に変数へ値を設定したり、エラー処理用のサブフローを実行したりできます

使い方

アクショングループ:フローコントロール
アクション名:ブロック エラー発生時

①名前
「ブロックエラー発生時」にて囲んだ処理のまとまりにわかりやすい名前を設定します

②再試行ポリシー
ブロック内でエラーが起きた際、ブロック内の処理をもう一度実行するか否かを設定します
・なし➡再試行を行わず、エラーが発生すると下の「エラー処理」の設定へ進みます
・固定➡指定した待機時間を空けて、指定回数まで再試行します
・指数➡再試行するまでの待機時間を長くしながら、指定回数まで再試行します

③カスタムエラー
「カスタム エラーをスローする」アクションに設定したエラー名と、「ブロック エラー発生時」に登録したエラー名が一致すると、そのカスタムエラー用のルールが実行されます

④すべてのエラー
特定の種類だけに別のルールを設定していない場合は、「すべてのエラー(既定)」に設定した処理が適用されます
「+」を選択すると、エラーが発生したときに行う処理を追加できます
・変数の設定➡エラーが発生したことを変数へ記録します
・サブフローの実行➡エラー発生時に指定したサブフローを実行します

⑤フロー終了エラーを処理する
オンにすると、通常のアクションエラーに加えて、フローの計算やデータの指定方法に問題があることで発生するエラーも処理の対象に含めます
【例】
・数値を0で割ろうとした
・リストに存在しない位置のデータを取得しようとした
・データテーブルの範囲外を指定した

利用サンプル

Copyボタンを押してから、PADに貼り付けてください

サンプルフロー利用方法

Display.ShowMessageDialog.ShowMessage Title: $'''フロー内容''' Message: $'''ブロックエラー発生時検証のためエラーを意図的に発生させます''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: True
BLOCK ファイル読み込みエラー
ON BLOCK ERROR

END
    File.ReadTextFromFile.ReadText File: $'''C:\\PAD_Test\\存在しないファイル.txt''' Encoding: File.TextFileEncoding.UTF8 Content=> FileContents
    Display.ShowMessageDialog.ShowMessage Title: $'''読み取り結果''' Message: $'''ファイルの読み取りに成功しました''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: True
END
Display.ShowMessageDialog.ShowMessage Title: $'''処理完了''' Message: $'''エラーを処理してフローを続行させました''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: True

注意事項

・「フローの実行を続行する」を設定すると、エラー発生時もエラー箇所を無視してフローを続行できますが、誤った内容で後続処理が進んでしまう可能性があります
エラーが起きたら、変数への記録やエラーログの保存等でエラーを確認できる状態にすることがおすすめです

・本来変数が生成されるアクションでエラーが起きた際、「次のアクションに移動」の設定を行なっていると、後続の処理でその変数が使用できず再びエラーになる可能性があります
失敗したアクションの結果を必要とする際は「次のアクションに移動」ではなく「ブロックの末尾に移動するなどで関連する処理をまるごと飛ばすなどの方法を検討してください

・「ブロック エラー発生時」の範囲を広くしすぎると、どの処理・アクションでエラーが起きたのかがわかりづらくなるため、「ログイン処理」「ファイル読込処理」など処理ごとでまとまりのあるブロックにすることがおすすめです

モバイルバージョンを終了