

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á.

# Tratamento de erros no Amazon SWF
<a name="swf-dg-error-handling"></a>

Existem vários tipos de erros que podem ocorrer durante a execução de um fluxo de trabalho.

**Topics**
+ [Erros de validação](#validation-errors)
+ [Erros na execução de ações ou decisões](#errors-in-enacting-actions-or-decisions)
+ [Tempos limite](#timeouts)
+ [Erros gerados pelo código do usuário](#errors-raised-by-user-code)
+ [Erros relacionados ao encerramento de uma execução de fluxo de trabalho](#errors-related-to-closing-a-workflow-execution)

## Erros de validação
<a name="validation-errors"></a>

Os erros de validação ocorrem quando uma solicitação para o Amazon SWF falha porque não está formada corretamente ou contém dados inválidos. Nesse contexto, uma solicitação poderia ser uma ação, como `DescribeDomain`, ou uma decisão, como `StartTimer`. Se a solicitação for uma ação, o Amazon SWF retornará um código de erro na resposta. Verifique esse código de erro, pois ele pode fornecer informações sobre qual aspecto da solicitação causou a falha. Por exemplo, um ou mais dos argumentos transmitidos com a solicitação podem ser inválidos. Para obter uma lista de códigos de erro comuns, acesse o tópico da ação em *Amazon Simple Workflow Service API Reference*. 

Se a solicitação que falhou for uma decisão, um evento apropriado será listado no histórico de execução de fluxo de trabalho. Por exemplo, se a decisão `StartTimer` falhasse, você veria um evento `StartTimerFailed` no histórico. O agente de decisão deve verificar esses eventos ao receber o histórico em resposta a `PollForDecisionTask` ou `GetWorkflowExecutionHistory`. Veja a seguir uma lista de possíveis eventos de falha de decisão que podem ocorrer quando a decisão não está formada corretamente ou contém dados inválidos. 

## Erros na execução de ações ou decisões
<a name="errors-in-enacting-actions-or-decisions"></a>

Mesmo que a solicitação seja formada corretamente, podem ocorrer erros quando o Amazon SWF tentar executar a solicitação. Nesses casos, um dos seguintes eventos no histórico indicará que ocorreu um erro. Observe o campo `reason` do evento para determinar a causa da falha. 
+ `[CancelTimerFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CancelTimerFailedEventAttributes.html)`
+ `[RequestCancelActivityTaskFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RequestCancelActivityTaskFailedEventAttributes.html)`
+ `[RequestCancelExternalWorkflowExecutionFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RequestCancelExternalWorkflowExecutionFailedEventAttributes.html)`
+ `[ScheduleActivityTaskFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ScheduleActivityTaskFailedEventAttributes.html)`
+ `[SignalExternalWorkflowExecutionFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_SignalExternalWorkflowExecutionFailedEventAttributes.html)`
+ `[StartChildWorkflowExecutionFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_StartChildWorkflowExecutionFailedEventAttributes.html)`
+ `[StartTimerFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_StartTimerFailedEventAttributes.html)`

## Tempos limite
<a name="timeouts"></a>

[Agentes de decisão](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RegisterWorkflowType.html), [operadores de atividade](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RegisterActivityType.html) e [execuções de fluxo de trabalho](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RegisterActivityType.html) operam todos dentro das restrições de períodos de tempo limite. Nesse tipo de erro, uma tarefa ou um fluxo de trabalho secundário atinge o tempo limite. Um evento aparecerá no histórico que descreve o tempo limite. O agente de decisão deve lidar com esse evento, por exemplo, reagendando a tarefa ou reiniciando o fluxo de trabalho secundário. Para obter mais informações sobre tempos limite, consulte [Tipos de tempo limite do Amazon SWF](swf-timeout-types.md)
+ `[ActivityTaskTimedOut](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskTimedOutEventAttributes.html)`
+ `[ChildWorkflowExecutionTimedOut](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ChildWorkflowExecutionTimedOutEventAttributes.html)`
+ `[DecisionTaskTimedOut](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DecisionTaskTimedOutEventAttributes.html)`
+ `[WorkflowExecutionTimedOut](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_WorkflowExecutionTimedOutEventAttributes.html)`

## Erros gerados pelo código do usuário
<a name="errors-raised-by-user-code"></a>

Exemplos desse tipo de condição de erro são falhas de tarefa de atividade e falhas de fluxos de trabalho secundários. Assim como acontece com os erros de tempo limite, o Amazon SWF adiciona um evento apropriado ao histórico de execução do fluxo de trabalho. O agente de decisão deve lidar com esse evento, possivelmente reagendando a tarefa ou reiniciando o fluxo de trabalho secundário. 
+ `[ActivityTaskFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskFailedEventAttributes.html)`
+ `[ChildWorkflowExecutionFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ChildWorkflowExecutionFailedEventAttributes.html)`

## Erros relacionados ao encerramento de uma execução de fluxo de trabalho
<a name="errors-related-to-closing-a-workflow-execution"></a>

Agentes de decisão também podem ver os seguintes eventos se tentarem encerrar um fluxo de trabalho que tenha uma tarefa de decisão pendente.
+ `[FailWorkflowExecutionFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_FailWorkflowExecutionFailedEventAttributes.html)`
+ `[CompleteWorkFlowExecutionFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CompleteWorkflowExecutionFailedEventAttributes.html)`
+ `[ContinueAsNewWorkflowExecutionFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ContinueAsNewWorkflowExecutionFailedEventAttributes.html)`
+ `[CancelWorkflowExecutionFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CancelWorkflowExecutionFailedEventAttributes.html)`

Para obter mais informações sobre qualquer um dos eventos listados acima, consulte [Evento de histórico](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_HistoryEvent.html) na Referência da API do Amazon SWF.