6.4. 错误处理
OpenShift Serverless Logic 允许您定义 显式
错误处理。您可以在工作流模型中定义,如果发生错误而不是某些通用错误处理实体,则应该发生什么情况。通过显式错误处理,您可以处理在工作流和外部系统交互期间可能出现的错误。发生错误时,它会更改常规工作流序列。在这些情况下,工作流状态过渡到可能处理错误的备选状态,而不是转换到预定义的状态。
每个工作流状态都可以定义错误处理,这仅与执行期间可能出现的错误相关。在一个状态中定义的错误处理无法用于处理在工作流执行过程中发生另一个状态的错误。
在工作流状态执行过程中可能会出现的未知错误,这些错误在工作流定义中没有被显式处理,应该由运行时实现报告并停止工作流执行。
6.4.1. 错误定义
工作流中的错误定义由 名称和
代码
参数组成。name
是错误的简短和自然语言描述,如 错误的参数
。code
参数有助于实施来识别错误。
code
参数是必需的,引擎使用不同的策略将提供的值映射到运行时遇到的异常。可用的策略包括 FQCN、错误消息和状态代码。
在工作流执行过程中,您必须处理工作流顶级错误属性中的已知工作流 错误
。此属性可以是 字符串类型
,这意味着它可以引用可重复使用的 JSON
或 YAML
定义文件,包括错误定义,或者具有 数组类型
,您可以在工作流定义中内联定义这些检查错误。
以下示例显示了两种类型的定义:
引用可重复使用的 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