本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Fail
一個Fail
狀態 ("Type": "Fail"
) 停止狀態機的執行,並將其標記為失敗,除非它被Catch
塊。
該Fail
狀態只允許使用Type
和Comment
從一組字段一般狀態欄位。此外,Fail
狀態允許使用下列欄位。
-
Cause
(選用) -
描述錯誤原因的自訂字串。您可以為操作或診斷目的指定此欄位。
-
CausePath
(選用) -
如果您想從狀態輸入動態提供有關錯誤原因的詳細說明,請使用參考路徑,使用
CausePath
。解析後,參考路徑必須選取包含字串值的欄位。您也可以指定
CausePath
使用內在函數返回一個字符串。這些內在函數是:狀態. 格式,States.JsonToString,States.ArrayGetItem,States.Base64Encode,States.Base64Decode,狀態雜湊,以及States.UUID。重要
-
您可以指定
Cause
或者CausePath
,但不能同時處於「失敗」狀態定義中。 -
基於資訊安全最佳實務,建議您從原因說明中移除任何敏感資訊或內部系統詳細資訊。
-
-
Error
(選用) -
ErrorPath
(選用) -
如果您想從狀態輸入動態提供錯誤的名稱,請使用參考路徑,使用
ErrorPath
。解析後,參考路徑必須選取包含字串值的欄位。您也可以指定
ErrorPath
使用內在函數返回一個字符串。這些內在函數是:狀態. 格式,States.JsonToString,States.ArrayGetItem,States.Base64Encode,States.Base64Decode,狀態雜湊,以及States.UUID。重要
-
您可以指定
Error
或者ErrorPath
,但不能同時處於「失敗」狀態定義中。 -
基於資訊安全最佳實務,建議您從錯誤名稱中移除任何敏感資訊或內部系統詳細資訊。
-
由於 Fail
狀態一律會結束狀態機器,因此沒有 Next
欄位,也不需要 End
欄位。
失敗狀態定義實務
下面的失敗狀態定義示例指定靜態Error
和Cause
字段值。
"FailState": {
"Type": "Fail",
"Cause": "Invalid response.",
"Error": "ErrorA"
}
下列「失敗」狀態定義範例會動態使用參照路徑來解析Error
和Cause
字段值。
"FailState": {
"Type": "Fail",
"CausePath": "$.Cause",
"ErrorPath": "$.Error"
}
下列「失敗」狀態定義範例使用狀態. 格式內在函數來指定Error
和Cause
動態字段值。
"FailState": {
"Type": "Fail",
"CausePath": "States.Format('This is a custom error message for {}, caused by {}.', $.Error, $.Cause)",
"ErrorPath": "States.Format('{}', $.Error)"
}