RoutaApiError ou uma de suas subclasses. Todas carregam:
Classes de erro
Uma subclasse também é um
RoutaApiError. Teste as subclasses mais específicas primeiro, como no exemplo acima.Tratando casos de negócio
Use ocode para decidir o que fazer, não o texto da mensagem.
O que o SDK já retenta
Falhas de rede,429, 5xx e um 409 idempotency_in_progress são retentados automaticamente, até maxRetries vezes. Só o erro final chega ao seu catch. 401, 403, 404 e 422 nunca são retentados. Veja Configuração.
O que não é um RoutaApiError
Duas situações não passam por essas classes:
- Falhas de rede e timeouts, depois que as retentativas acabam, rejeitam com um
Errorsimples cujonameé'HttpRequestError'. A classe ainda não é exportada, então verifiqueerror.nameem vez de usarinstanceof. - Configuração inválida, como uma
apiKeyvazia, lança umErrorsimples e síncrono no construtorRouta.
Uma falha de validação de schema (por exemplo, um campo obrigatório ausente) chega como
RoutaInvalidRequestError com o código unknown_error, porque a resposta não vem no formato de erro da Routa. Veja Erros de validação de schema.Falhas de entrega
Uma falha do provedor não vira exceção emmessages.send(): a mensagem é aceita e a falha aparece depois, de forma assíncrona, como o evento message.failed. A classe RoutaProviderError existe para um uso futuro e nenhum código do SDK a lança hoje.