6.4. エラー処理
OpenShift Serverless Logic を使用すると、明示的な
エラー処理を定義できます。一般的なエラー処理エンティティーではなく、エラーが発生した場合に何が起こるかをワークフローモデル内で定義できます。明示的なエラー処理により、ワークフローと外部システム間のやり取り中に発生する可能性のあるエラーを処理できます。エラーが発生すると、通常のワークフローのシーケンスが変更されます。このような場合、ワークフローの状態は、事前定義された状態に移行するのではなく、エラーを処理できる可能性のある代わりの状態に移行します。
各ワークフロー状態では、実行中に発生する可能性のあるエラーにのみ関連するエラー処理を定義できます。ある状態で定義されたエラー処理は、ワークフロー実行中に別の状態で発生したエラーの処理に使用できません。
ワークフロー状態の実行中に発生する可能性があり、ワークフロー定義内で明示的に処理されない不明なエラーは、ランタイム実装によって報告され、ワークフローの実行を停止する必要があります。
6.4.1. エラー定義
ワークフロー内のエラー定義は、name
および code
パラメーターで構成されます。この name
は、wrong parameter
など、自然言語によるエラーに関する簡単な説明です。code
パラメーターは、実装でエラーを特定するのに役立ちます。
コード
パラメーターは必須であり、エンジンはさまざまなストラテジーを使用して、提供された値を実行時に発生した例外にマッピングします。使用可能なストラテジーには、FQCN、エラーメッセージ、ステータスコードが含まれます。
ワークフローの実行中は、ワークフローの最上位レベルの errors
プロパティーで既知のワークフローエラーを処理する必要があります。このプロパティーは string
型にすることができ、エラー定義を含む再利用可能な JSON
または YAML
定義ファイルを参照できます。また、チェックされたエラーをワークフロー定義にインラインで定義できる array
型にすることもできます。
以下の例は、両方のタイプの定義を示しています。
再利用可能な JSON エラー定義ファイルを参照する例
{ "errors": "file://documents/reusable/errors.json" }
再利用可能な YAML エラー定義ファイルを参照する例
errors: file://documents/reusable/errors.json
JSON ファイルを使用してワークフローエラーをインラインで定義する例
{ "errors": [ { "name": "Service not found error", "code": "404", "description": "Server has not found anything matching the provided service endpoint information" } ] }
YAML ファイルを使用してワークフローエラーをインラインで定義する例
errors: - name: Service not found error code: '404' description: Server has not found anything matching the provided service endpoint information