6.4. 错误处理


OpenShift Serverless Logic 允许您定义 显式 错误处理。您可以在工作流模型中定义,如果发生错误而不是某些通用错误处理实体,则应该发生什么情况。通过显式错误处理,您可以处理在工作流和外部系统交互期间可能出现的错误。发生错误时,它会更改常规工作流序列。在这些情况下,工作流状态过渡到可能处理错误的备选状态,而不是转换到预定义的状态。

每个工作流状态都可以定义错误处理,这仅与执行期间可能出现的错误相关。在一个状态中定义的错误处理无法用于处理在工作流执行过程中发生另一个状态的错误。

在工作流状态执行过程中可能会出现的未知错误,这些错误在工作流定义中没有被显式处理,应该由运行时实现报告并停止工作流执行。

6.4.1. 错误定义

工作流中的错误定义由 名称和 代码 参数组成。name 是错误的简短和自然语言描述,如 错误的参数code 参数有助于实施来识别错误。

code 参数是必需的,引擎使用不同的策略将提供的值映射到运行时遇到的异常。可用的策略包括 FQCN、错误消息和状态代码。

在工作流执行过程中,您必须处理工作流顶级错误属性中的已知工作流 错误。此属性可以是 字符串类型,这意味着它可以引用可重复使用的 JSONYAML 定义文件,包括错误定义,或者具有 数组类型,您可以在工作流定义中内联定义这些检查错误。

以下示例显示了两种类型的定义:

引用可重复使用的 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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.