Topik ini menjelaskan keadaan Gagal dan menyediakan contoh terkait.
Ikhtisar
Keadaan Gagal digunakan untuk menghentikan serangkaian keadaan sebelum rangkaian tersebut dieksekusi. Keadaan ini mirip dengan tindakan seperti raise dan throw dalam bahasa pemrograman. Dalam definisi umum sebuah alur, keadaan berikutnya dijalankan setelah keadaan saat ini selesai. Namun, jika keadaan saat ini adalah keadaan Gagal, keadaan berikutnya tidak akan dijalankan. Jika sebuah alur mencapai keadaan Gagal, semua keadaan dalam ruang lingkup dihentikan dan seluruh alur berakhir.
Tabel berikut menjelaskan atribut yang dimiliki oleh keadaan Gagal.
Atribut | Tipe | Diperlukan | Deskripsi | Contoh |
Nama | string | Ya | Nama dari keadaan. | keadaan saya |
Deskripsi | string | Tidak | Deskripsi dari keadaan. | jelaskan di sini |
Tipe | string | Ya | Tipe dari keadaan. | Gagal |
InputConstructor | map[string]any | Tidak | Konstruktor input. | Lihat InputConstructor. |
OutputConstructor | map[string]any | Tidak | Konstruktor output. | Lihat OutputConstructor. |
Kode | string | Tidak | Kode kesalahan yang dikembalikan. | customBizCode |
Detail | string | Ya | Deskripsi dari kesalahan. | kesalahan kustom saya |
Anda harus mendefinisikan kesalahan kustom untuk keadaan Gagal. Jika kesalahan kustom terjadi, alur gagal dan berakhir. Dalam keadaan Succeed, alur tempat keadaan Succeed berada berakhir setelah ruang lingkup saat ini selesai. Anda dapat menggunakan parameter Kode untuk menentukan kode kesalahan dan parameter Detail untuk menentukan informasi tambahan.
Contoh
Alur sampel berikut menggunakan keadaan Gagal untuk mengakhiri ruang lingkup.
Type: StateMachine
Name: my-workflow
SpecVersion: v1
Description: " "
StartAt: Choice1
States:
- Type: Choice
Name: Choice1
Branches:
- Condition: $Input.status == "true"
Next: Pass1
Default: Fail1
- Type: Fail
Name: Fail1
Code: "customBizCode"
End: true
- Type: Pass
Name: Pass1
End: trueKeadaan Gagal dapat dianggap sebagai keadaan Pass dengan atribut End bernilai true yang mengembalikan kesalahan.
Dalam contoh ini, jika kondisi $Input.status=="true" tidak terpenuhi, alur berlanjut ke keadaan default dan seluruh alur dihentikan.