Power Automate Desktopでエラー発生時に止めたくないときの例外処理(Try-Catch)の使い方と実務的な活用法

  • URLをコピーしました!

1. エラーハンドリングの基本構造:「エラー発生時の処理」アクション

PADでは、エラー処理を次の構成で行います。

発生時の処理(Tryブロック)
 ├ 処理内容(例:ファイルを開く、Webページから情報を取得)
 └ エラー発生時(Catchブロック)
   ├ ログ出力(例:ファイルにエラー内容を書き出す)
   └ フロー継続または終了

このアクションを使うことで、特定のステップでエラーが発生しても、フロー全体が止まることなく、次の処理に進めるようになります。


2. 実務でよくあるパターン:ファイルがなかったらスキップする

例:フォルダ内の複数ファイルを処理するフロー

  • 各ファイルを1つずつ開く
  • ただし、時々ファイルが削除されている場合がある

実装手順:

  1. 「エラー発生時の処理」を追加
  2. Tryブロック内に「Excelの起動」や「ファイル読み込み」などの操作を配置
  3. Catchブロック内に「ログファイルへ書き出し」または「メッセージ表示」アクションを配置
  4. 最後に「次のファイルへ進む」処理を記述

ポイント:

  • Catchブロックで「何もしない」としてもOK。ただし、何が起きたかをログに残しておくと、後で確認しやすくなります。

3. エラー内容をログファイルに出力する方法

実務では、エラーが起きたときに「何が起こったか」「どのステップで失敗したか」を残すことが非常に重要です。

ログファイル出力の実装手順:

  1. Catchブロック内で「日時取得」アクションを使用
  2. 「テキストを結合」アクションで、エラーメッセージ+日時を整形
  3. 「ファイルへ書き込む」アクションでログファイルに追記
【ログ例】
2025-06-26 14:32:01:Excelファイル読み込みエラー:ファイルが見つかりません

ヒント:

  • ログファイルは「C:\Logs\pad_error_log.txt」など、分かりやすい場所に配置する
  • 「ログファイルが存在しない場合は作成する」設定をオンにしておくと安心

4. エラー後のリカバリー処理を追加する

単にエラーを無視するだけでなく、「代替処理」を入れておくとさらに実務的なフローになります。

例:

  • 「Webページ取得」に失敗したら、10秒待って再実行
  • 「ファイル保存」に失敗したら、別のフォルダに保存

実装方法:

  • Catchブロック内で「一時停止」「再試行」「代替手段へ分岐」などのアクションを組み合わせる

目次

よくある質問(FAQ)

Q1. Try-Catchを使ってもフローが止まってしまいます
→ Catchブロック内でエラーが再発するとフローは停止します。Catchブロックにもエラー発生の可能性がある場合は、さらに内側に「エラー発生時の処理」を入れることで多重保護が可能です。

Q2. ログファイルが書き出されていません
→ ファイルパスに誤りがある可能性があります。絶対パスで指定し、「ファイルに追記」オプションを有効にしてください。また、実行ユーザーに書き込み権限があるかも確認します。

Q3. 毎回ログを出すのが面倒です
→ ログ出力処理をサブフローとして切り出し、使い回すことで効率的に管理できます。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次