6.4. 오류 처리
OpenShift Serverless Logic을 사용하면 명시적
오류 처리를 정의할 수 있습니다. 워크플로우 모델 내부에서 일부 일반적인 오류 처리 엔터티 대신 오류가 발생하면 어떤 일이 발생할지 정의할 수 있습니다. 명시적 오류 처리를 사용하면 워크플로우와 외부 시스템 간의 상호 작용 중에 발생할 수 있는 오류를 처리할 수 있습니다. 오류가 발생하면 일반 워크플로우 시퀀스가 변경됩니다. 이러한 경우 워크플로우 상태는 사전 정의된 상태로 전환되는 대신 오류를 잠재적으로 처리할 수 있는 대체 상태로 전환됩니다.
각 워크플로우 상태는 실행 중에 발생할 수 있는 오류와 관련된 오류 처리를 정의할 수 있습니다. 한 상태로 정의된 오류 처리는 워크플로우 실행 중에 다른 상태를 실행하는 동안 발생한 오류를 처리하는 데 사용할 수 없습니다.
워크플로우 정의 내에서 명시적으로 처리되지 않은 워크플로우 상태 실행 중에 발생할 수 있는 알 수 없는 오류는 런타임 구현에 의해 보고되고 워크플로우 실행을 중지해야 합니다.
6.4.1. 오류 정의
워크플로의 오류 정의는 name
및 code
매개변수로 구성됩니다. 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