

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Status alur kerja gagal
<a name="state-fail"></a>

**Mengelola status dan mengubah data**  
Pelajari tentang [Melewati data antar status dengan variabel](workflow-variables.md) dan [Mengubah data dengan JSONata](transforming-data.md).

Status `Fail` (`"Type": "Fail"`) menghentikan eksekusi mesin status dan menandainya sebagai kegagalan, kecuali jika tertangkap oleh blok `Catch`.

Status `Fail` hanya mengizinkan penggunaan bidang `Type` dan `Comment` dari set [bidang status umum](statemachine-structure.md#amazon-states-language-common-fields). Selain itu, status `Fail` mengizinkan bidang berikut.

** `Cause` (Opsional)**  
String khusus yang menjelaskan penyebab kesalahan. Anda dapat menentukan bidang ini untuk tujuan operasional atau diagnostik.  
Di JSONata negara bagian, Anda juga dapat menentukan JSONata ekspresi.

** `CausePath`(Opsional, JSONPath hanya) **  
Jika Anda ingin memberikan deskripsi rinci tentang penyebab kesalahan secara dinamis dari input status menggunakan [jalur referensi](amazon-states-language-paths.md#amazon-states-language-reference-paths), gunakan`CausePath`. Ketika diselesaikan, jalur referensi harus memilih bidang yang berisi nilai string.  
Anda juga dapat menentukan `CausePath` menggunakan [fungsi intrinsik](intrinsic-functions.md) yang mengembalikan string. [Intrinsik ini adalah: [States.Format](intrinsic-functions.md#asl-intrsc-func-generic),,,,[States.JsonToString](intrinsic-functions.md#jsontostring), [States.ArrayGetItem](intrinsic-functions.md#arraygetitem) States.Hash [States.Base64Encode](intrinsic-functions.md#base64encode)[States.Base64Decode](intrinsic-functions.md#base64decode), dan.](intrinsic-functions.md#asl-intrsc-func-uuid-generate) [States.UUID](intrinsic-functions.md#statesuuid)  
+ Anda dapat menentukan salah satu `Cause` atau`CausePath`, tetapi tidak keduanya dalam definisi status Gagal Anda.
+ Sebagai praktik terbaik keamanan informasi, kami menyarankan Anda menghapus informasi sensitif atau detail sistem internal dari deskripsi penyebabnya.

** `Error` (Opsional)**  
Nama kesalahan yang dapat Anda berikan untuk melakukan penanganan kesalahan menggunakan bidang [Coba Ulang](concepts-error-handling.md#error-handling-retrying-after-an-error) atau [Tangkap](concepts-error-handling.md#error-handling-fallback-states). Anda juga dapat memberikan nama kesalahan untuk tujuan operasional atau diagnostik.  
Di JSONata negara bagian, Anda juga dapat menentukan JSONata ekspresi.

** `ErrorPath`(Opsional, JSONPath hanya) **  
Jika Anda ingin memberikan nama untuk kesalahan secara dinamis dari input status menggunakan [jalur referensi](amazon-states-language-paths.md#amazon-states-language-reference-paths), gunakan`ErrorPath`. Ketika diselesaikan, jalur referensi harus memilih bidang yang berisi nilai string.  
Anda juga dapat menentukan `ErrorPath` menggunakan [fungsi intrinsik](intrinsic-functions.md) yang mengembalikan string. [Intrinsik ini adalah: [States.Format](intrinsic-functions.md#asl-intrsc-func-generic),,,,[States.JsonToString](intrinsic-functions.md#jsontostring), [States.ArrayGetItem](intrinsic-functions.md#arraygetitem) States.Hash [States.Base64Encode](intrinsic-functions.md#base64encode)[States.Base64Decode](intrinsic-functions.md#base64decode), dan.](intrinsic-functions.md#asl-intrsc-func-uuid-generate) [States.UUID](intrinsic-functions.md#statesuuid)  
+ Anda dapat menentukan salah satu `Error` atau`ErrorPath`, tetapi tidak keduanya dalam definisi status Gagal Anda.
+ Sebagai praktik terbaik keamanan informasi, kami menyarankan Anda menghapus informasi sensitif atau detail sistem internal dari nama kesalahan.

Karena status `Fail` selalu keluar dari mesin status, status tersebut tidak memiliki bidang `Next` dan tidak memerlukan bidang `End`.

## Contoh definisi status gagal
<a name="fail-state-examples"></a>

Contoh definisi status Fail berikut menentukan nilai statis `Error` dan `Cause` bidang.

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

Contoh definisi status Fail berikut menggunakan jalur referensi secara dinamis untuk menyelesaikan nilai `Error` dan `Cause` bidang.

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

Contoh definisi status Fail berikut menggunakan fungsi intrinsik [States.Format](intrinsic-functions.md#asl-intrsc-func-generic) untuk menentukan nilai `Error` dan `Cause` bidang secara dinamis.

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