Aviso de fim do suporte: em 20 de maio de 2026, AWS encerrará o suporte para AWS SimSpace Weaver. Depois de 20 de maio de 2026, você não poderá mais acessar o SimSpace Weaver console ou os SimSpace Weaver recursos. Para obter mais informações, consulte AWS SimSpace Weaver Fim do suporte.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Result e tratamento de erros
A classe Aws::WeaverRuntime::Result<T>
usa uma biblioteca Outcome
de terceiros. Use o padrão a seguir para verificar Result
e capturar os erros retornados pelas chamadas de 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 macro de declaração de controle
Dentro de uma função com um tipo de retorno Aws::WeaverRuntime::Result<T>
, é possível usar a macro WEAVERRUNTIME_TRY
em vez do padrão de código anterior. A macro executará a função passada para ela. Se a função passada falhar, a macro fará com que a função envolvente retorne um erro. Se a função passada for bem-sucedida, a execução avançará para a próxima linha. O exemplo a seguir mostra a nova gravação da função DoBeginUpdate()
anterior. Esta versão usa a WEAVERRUNTIME_TRY
macro em vez da if-else estrutura de controle. O tipo de retorno da função é 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(); }
Se BeginUpdate()
falhar, a macro DoBeginUpdate()
retorna mais cedo com uma falha. Você pode usar a macro WEAVERRUNTIME_EXPECT_ERROR
para obter o Aws::WeaverRuntime::ErrorCode
de BeginUpdate()
. O exemplo a seguir mostra como a função Update()
chama DoBeginUpdate()
e obtém o código de erro em caso de falha.
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); } }
Você pode tornar o código de erro BeginUpdate()
disponível para uma função que chamará Update()
alterando o tipo de retorno de Update()
para Aws::WeaverRuntime::Result<void>
. Repita o processo para continuar enviando o código de erro mais abaixo na pilha de chamadas.