O Tablestore Java SDK lança exceções para tratar erros. Este tópico descreve os métodos de tratamento de erros, os detalhes das exceções e as políticas de nova tentativa.
Método
Se uma chamada de API não lançar exceção, a operação será bem-sucedida. Caso contrário, terá falhado.
Em operações em lote, como BatchGetRow e BatchWriteRow, verifique as exceções e valide o status de cada linha. A chamada de API só é considerada bem-sucedida se todas as linhas forem processadas corretamente.
Exceções
O Tablestore Java SDK inclui dois tipos de exceção: ClientException e TableStoreException. Ambas herdam de RuntimeException.
ClientException: exceção interna do SDK causada, por exemplo, pela definição incorreta de um parâmetro.
-
TableStoreException: erro no lado do servidor gerado ao analisar uma mensagem de erro retornada pelo serviço. Um objeto TableStoreException contém os seguintes membros:
getHttpStatus(): código de retorno HTTP, como 200 ou 404.
getErrorCode(): string do código de erro retornada pelo Tablestore.
getRequestId(): identificador universalmente único (UUID) da solicitação. Se não conseguir resolver o problema, registre esse RequestId e envie um ticket.
Nova tentativa
O SDK repete automaticamente a operação quando ocorre um erro. Por padrão, apenas as operações de leitura que falham devido a erros de limitação ou erros internos do servidor são repetidas. A política padrão define duração máxima de nova tentativa de 10 s.
Implemente uma política personalizada herdando a classe RetryStrategy e passe-a como parâmetro ao construir o objeto OTSClient.
O SDK implementa as seguintes políticas de nova tentativa:
DefaultRetryStrategy: política padrão que repete apenas operações de leitura. O intervalo aumenta exponencialmente a partir de 10 ms, com duração máxima de 10 s.
AlwaysRetryStrategy: aplica nova tentativa a todos os tipos de solicitação, até três vezes. O intervalo cresce exponencialmente a partir de 4 ms, limitado a 1 s.