1. エラーハンドリングの基本構造:「エラー発生時の処理」アクション
PADでは、エラー処理を次の構成で行います。
発生時の処理(Tryブロック)
├ 処理内容(例:ファイルを開く、Webページから情報を取得)
└ エラー発生時(Catchブロック)
├ ログ出力(例:ファイルにエラー内容を書き出す)
└ フロー継続または終了
このアクションを使うことで、特定のステップでエラーが発生しても、フロー全体が止まることなく、次の処理に進めるようになります。
2. 実務でよくあるパターン:ファイルがなかったらスキップする
例:フォルダ内の複数ファイルを処理するフロー
- 各ファイルを1つずつ開く
- ただし、時々ファイルが削除されている場合がある
実装手順:
- 「エラー発生時の処理」を追加
- Tryブロック内に「Excelの起動」や「ファイル読み込み」などの操作を配置
- Catchブロック内に「ログファイルへ書き出し」または「メッセージ表示」アクションを配置
- 最後に「次のファイルへ進む」処理を記述
ポイント:
- Catchブロックで「何もしない」としてもOK。ただし、何が起きたかをログに残しておくと、後で確認しやすくなります。
3. エラー内容をログファイルに出力する方法
実務では、エラーが起きたときに「何が起こったか」「どのステップで失敗したか」を残すことが非常に重要です。
ログファイル出力の実装手順:
- Catchブロック内で「日時取得」アクションを使用
- 「テキストを結合」アクションで、エラーメッセージ+日時を整形
- 「ファイルへ書き込む」アクションでログファイルに追記
【ログ例】
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. 毎回ログを出すのが面倒です
→ ログ出力処理をサブフローとして切り出し、使い回すことで効率的に管理できます。
