Tratamento de exceções no SDK da Rapid para Java
O SDK da Rapid para Java usa exceções de tempo de execução (desmarcadas) para retransmitir erros. Na raiz da hierarquia de exceções está ExpediaGroupException, a partir do qual todas as outras exceções são estendidas. ExpediaGroupException nunca é lançado de modo direto.
Existem duas categorias de ExpediaGroupException:
ExpediaGroupServiceException: lançado quando o serviço downstream retorna uma resposta de erro. Ou seja, quando o serviço recebeu a solicitação, mas não conseguiu processá-la. O objeto de exceção fornece ao cliente várias informações sobre o erro, incluindo um código de status HTTP e uma mensagem detalhada.ExpediaGroupAuthExceptioné um subtipo dessa exceção e é lançado quando a autenticação falha.ExpediaGroupClientException: lançado em erros de cliente, seja ao tentar enviar a solicitação ou analisar a resposta. Por exemplo, umExpediaGroupConfigurationExceptioné lançado se as credenciais não estiverem configuradas.
Como as exceções não são verificadas, quem faz a chamada decide quais são tratadas. A princípio, um ExpediaGroupClientException não deveria ser repetido e deve ser corrigido durante o desenvolvimento. Por outro lado, um ExpediaGroupServiceException pode ser recuperável, como erros resultantes de um serviço temporariamente indisponível. Assim, o tratamento de erros deve dar prioridade ao segundo caso.