

Pemberitahuan akhir dukungan: Pada 20 Mei 2026, AWS akan mengakhiri dukungan untuk AWS SimSpace Weaver. Setelah 20 Mei 2026, Anda tidak akan lagi dapat mengakses SimSpace Weaver konsol atau SimSpace Weaver sumber daya. Untuk informasi selengkapnya, lihat [AWS SimSpace Weaver akhir dukungan](https://docs.aws.amazon.com/simspaceweaver/latest/userguide/simspaceweaver-end-of-support.html). 

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

# Result dan penanganan kesalahan
<a name="working-with_app-sdk_result"></a>

`Aws::WeaverRuntime::Result<T>`Kelas menggunakan `Outcome` pustaka pihak ketiga. Anda dapat menggunakan pola berikut untuk memeriksa kesalahan `Result` dan catch yang dikembalikan oleh panggilan API.

```
void DoBeginUpdate(Application& app)
{
    Result<Transaction> transactionResult = Api::BeginUpdate(app);
    
    if (transactionResult)
    {
        Transaction transaction = 
            std::move(transactionResult).assume_value();
        
        /**
         * Do things with transaction ...
         */
    }
    else
    {     
        ErrorCode errorCode = WEAVERRUNTIME_EXPECT_ERROR(transactionResult);
        /**
         * Macro compiles to:
         * ErrorCode errorCode = transactionResult.assume_error();
         */
    }
}
```

## Result pernyataan kontrol makro
<a name="working-with_app-sdk_result_macro"></a>

Di dalam fungsi dengan tipe pengembalian`Aws::WeaverRuntime::Result<T>`, Anda dapat menggunakan `WEAVERRUNTIME_TRY` makro alih-alih pola kode sebelumnya. Makro akan menjalankan fungsi yang diteruskan ke sana. Jika fungsi yang dilewatkan gagal, makro akan membuat fungsi terlampir mengembalikan kesalahan. Jika fungsi yang dilewatkan berhasil, eksekusi berlanjut ke baris berikutnya. Contoh berikut menunjukkan penulisan ulang dari `DoBeginUpdate()` fungsi sebelumnya. Versi ini menggunakan `WEAVERRUNTIME_TRY` makro, bukan if-else struktur kontrol. Perhatikan bahwa tipe pengembalian fungsi adalah`Aws::WeaverRuntime::Result<void>`.

```
Aws::WeaverRuntime::Result<void> DoBeginUpdate(Application& app)
{
    /**
     * Execute Api::BeginUpdate() 
     * and return from DoBeginUpdate() if BeginUpdate() fails.
     * The error is available as part of the Result.
     */
    WEAVERRUNTIME_TRY(Transaction transaction, Api::BeginUpdate(m_app));
    
    /**
     * Api::BeginUpdate executed successfully.
     *
     * Do things here.
     */
    
    return Aws::Success();
}
```

Jika `BeginUpdate()` gagal, makro membuat `DoBeginUpdate()` pengembalian lebih awal dengan kegagalan. Anda dapat menggunakan `WEAVERRUNTIME_EXPECT_ERROR` makro untuk mendapatkan `Aws::WeaverRuntime::ErrorCode` dari`BeginUpdate()`. Contoh berikut menunjukkan bagaimana `Update()` fungsi memanggil `DoBeginUpdate()` dan mendapatkan kode kesalahan pada kegagalan.

```
void Update(Application& app)
{
    Result<void> doBeginUpdateResult = DoBeginUpdate(app);
    
    if (doBeginUpdateResult)
    {
        /**
         * Successful.
         */
    }
    else
    {    
        /**
         * Get the error from Api::BeginUpdate().
         */ 
        ErrorCode errorCode = WEAVERRUNTIME_EXPECT_ERROR(doBeginUpdateResult);

    }
}
```

Anda dapat membuat kode kesalahan dari `BeginUpdate()` tersedia ke fungsi yang memanggil `Update()` dengan mengubah jenis pengembalian `Update()` ke`Aws::WeaverRuntime::Result<void>`. Anda dapat mengulangi proses ini untuk terus mengirim kode kesalahan lebih jauh ke tumpukan panggilan.