エラーハンドリング
Make のシナリオでエラーが発生した際の処理方法を制御するためのツール一覧です。
目次
エラーハンドラーの設定方法
- エラーが発生しているモジュールを右クリックします
- Add Error Handler を選択します
- 使用するエラーハンドラーを選択します
- シナリオを保存します
Ignore
エラーを無視してバンドルをフローから除外し、次のバンドルの処理を続行します。シナリオはエラーがあっても成功として記録されます。
パラメータ
なし
使用場面
- 一部のデータに不備があっても全体の処理を止めたくない場合
- エラーが発生しても後続処理に影響しないことが確認できている場合
Resume
エラーが発生したモジュールの出力を、あらかじめ定義した代替データに置き換えてフローを継続します。
パラメータ
| パラメータ | 説明 |
|---|---|
| Substitute Output | エラー時に代替として使用する出力値(エラーが発生したモジュールと同じフィールド構成で設定) |
使用場面
- エラー発生時に代替値(デフォルト値や空値)を使って後続処理を続けたい場合
- エラーが発生したバンドルに目印を付けて後から確認できるようにしたい場合
Break
エラーが発生したバンドルをフローから除外し、エラー内容・マッピング・残りのフローを「不完全な実行」として保存します。他のバンドルの処理は継続されます。
パラメータ
| パラメータ | 説明 |
|---|---|
| Auto-complete Incomplete Executions | 不完全な実行を自動的に再試行するか |
| Number of Attempts | 自動再試行の最大回数 |
| Interval Between Attempts | 再試行の間隔(秒) |
注意事項
ConnectionErrorやRateLimitErrorは設定なしで自動的に再試行されます- 不完全な実行を保存するには、シナリオ設定で Allow storing incomplete executions を有効にする必要があります
使用場面
- 一時的なエラー(接続エラー・レート制限)が発生した場合に後で再処理したい場合
- エラーの原因を確認・修正してから再実行したい場合
Rollback
エラーが発生した時点でシナリオの実行を即時停止し、トランザクションをサポートするモジュールが行った変更をすべて元に戻します。
パラメータ
なし
注意事項
- ロールバックできるのは ACID 対応モジュール(MySQL・Data Store など)のみです
- Gmail の「Send an Email」や Dropbox の「Delete a File」などはロールバックできません
- シナリオ設定の Auto-commit が有効な場合、エラーを起こしたモジュールのみロールバックされます
- シナリオはエラーとして記録されますが、無効化はされません
使用場面
- データベースへの書き込みなど、整合性を保つ必要がある処理でエラーが発生した場合
Commit
トランザクションを即時コミット(確定)し、以降のモジュールのトランザクションを新たに開始します。
パラメータ
なし
注意事項
- トランザクションをサポートするモジュール(MySQL・Data Store など)と組み合わせて使用します
- Commit 以前の処理はコミット済みとなるため、以降でエラーが発生しても Commit 前の変更はロールバックされません
使用場面
- 長いフローの途中でトランザクションを区切り、一部の処理を確定させたい場合