

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Stato del flusso di lavoro fallito
<a name="state-fail"></a>

**Gestione dello stato e trasformazione dei dati**  
Scopri come [passare dati tra stati con variabili](workflow-variables.md) e [Trasformare dati](transforming-data.md) con. JSONata

Uno `Fail` state (`"Type": "Fail"`) interrompe l'esecuzione della macchina a stati e la contrassegna come fallita, a meno che non venga intercettata da un `Catch` blocco.

Lo stato `Fail` autorizza soltanto l'utilizzo dei campi `Type` e `Comment` dal set di [campi di stato comuni](statemachine-structure.md#amazon-states-language-common-fields). Inoltre, lo stato `Fail` consente i seguenti campi.

** `Cause` (facoltativo).**  
Una stringa personalizzata che descrive la causa dell'errore. È possibile specificare questo campo per scopi operativi o diagnostici.  
Negli JSONata stati, è anche possibile specificare un' JSONata espressione.

** `CausePath`( JSONPath Solo facoltativo) **  
Se desideri fornire una descrizione dettagliata della causa dell'errore in modo dinamico a partire dall'input dello stato utilizzando un [percorso di riferimento](amazon-states-language-paths.md#amazon-states-language-reference-paths), usa`CausePath`. Una volta risolto, il percorso di riferimento deve selezionare un campo che contiene un valore di stringa.  
È inoltre possibile specificare `CausePath` utilizzando una [funzione intrinseca](intrinsic-functions.md) che restituisce una stringa. [Questi elementi intrinseci sono: [States.Format,,,,[States.JsonToString](intrinsic-functions.md#jsontostring), [States.ArrayGetItem](intrinsic-functions.md#arraygetitem) States.Hash](intrinsic-functions.md#asl-intrsc-func-generic) e. [States.Base64Encode](intrinsic-functions.md#base64encode)[States.Base64Decode](intrinsic-functions.md#base64decode)](intrinsic-functions.md#asl-intrsc-func-uuid-generate) [States.UUID](intrinsic-functions.md#statesuuid)  
+ È possibile specificare uno `Cause` o entrambi`CausePath`, ma non entrambi nella definizione dello stato Fail.
+ Come best practice in materia di sicurezza delle informazioni, consigliamo di rimuovere tutte le informazioni sensibili o i dettagli interni del sistema dalla descrizione della causa.

** `Error` (facoltativo).**  
Un nome di errore che è possibile fornire per eseguire la gestione degli errori utilizzando i campi [Retry](concepts-error-handling.md#error-handling-retrying-after-an-error) o [Catch](concepts-error-handling.md#error-handling-fallback-states). È inoltre possibile fornire un nome di errore per scopi operativi o diagnostici.  
Negli JSONata stati, puoi anche specificare un' JSONata espressione.

** `ErrorPath`( JSONPath Solo facoltativo) **  
Se si desidera fornire un nome per l'errore in modo dinamico a partire dall'input dello stato utilizzando un [percorso di riferimento](amazon-states-language-paths.md#amazon-states-language-reference-paths), utilizzare`ErrorPath`. Una volta risolto, il percorso di riferimento deve selezionare un campo che contiene un valore di stringa.  
È inoltre possibile specificare `ErrorPath` utilizzando una [funzione intrinseca](intrinsic-functions.md) che restituisce una stringa. [Questi elementi intrinseci sono: [States.Format,,,,[States.JsonToString](intrinsic-functions.md#jsontostring), [States.ArrayGetItem](intrinsic-functions.md#arraygetitem) States.Hash](intrinsic-functions.md#asl-intrsc-func-generic) e. [States.Base64Encode](intrinsic-functions.md#base64encode)[States.Base64Decode](intrinsic-functions.md#base64decode)](intrinsic-functions.md#asl-intrsc-func-uuid-generate) [States.UUID](intrinsic-functions.md#statesuuid)  
+ È possibile specificare uno `Error` o entrambi`ErrorPath`, ma non entrambi nella definizione dello stato Fail.
+ Come best practice in materia di sicurezza delle informazioni, si consiglia di rimuovere dal nome dell'errore tutte le informazioni riservate o i dettagli interni del sistema.

Poiché gli stati `Fail` escono sempre dalla macchina a stati, non hanno campi `Next` e non richiedono un campo `End`.

## Esempi di definizione dello stato di errore
<a name="fail-state-examples"></a>

Il seguente esempio di definizione dello stato di errore specifica i valori statici `Error` e di `Cause` campo.

```
"FailState": {
  "Type": "Fail",
  "Cause": "Invalid response.",
  "Error": "ErrorA"
}
```

Il seguente esempio di definizione dello stato Fail utilizza i percorsi di riferimento in modo dinamico per risolvere i valori dei `Cause` campi `Error` e.

```
"FailState": {
  "Type": "Fail",
  "CausePath": "$.Cause",
  "ErrorPath": "$.Error"
}
```

Il seguente esempio di definizione dello stato Fail utilizza la funzione intrinseca [States.Format](intrinsic-functions.md#asl-intrsc-func-generic) per specificare dinamicamente i valori dei `Error` campi e. `Cause`

```
"FailState": {
  "Type": "Fail",
  "CausePath": "States.Format('This is a custom error message for {}, caused by {}.', $.Error, $.Cause)",
  "ErrorPath": "States.Format('{}', $.Error)"
}
```