O kit de desenvolvimento de software (SDK) PHP do Tablestore trata erros por meio do lançamento de exceções. Este tópico descreve o tratamento de erros do Tablestore, as informações das exceções e as políticas de nova tentativa.
Método
O SDK PHP do Tablestore gerencia erros lançando exceções. Se uma chamada de API for concluída sem gerar exceção, a operação teve êxito. Caso contrário, ela falhou.
Em operações em lote, como BatchGetRow e BatchWriteRow, verifique tanto a ocorrência de exceções quanto o status de cada linha. A chamada de API só é considerada bem-sucedida quando todas as linhas são processadas corretamente.
Exceções
O SDK PHP do Tablestore define dois tipos de exceção: OTSClientException e OTSServerException. Ambas herdam da classe base Exception.
OTSClientException: exceção originada no próprio SDK, causada, por exemplo, pela definição incorreta de um parâmetro.
-
OTSServerException: erro no lado do servidor, extraído da mensagem de erro retornada por ele. Um objeto OTSServerException contém os seguintes membros:
getHttpStatus(): código de retorno HTTP, como 200 ou 404.
getOTSErrorCode(): string que indica o tipo de erro retornado pelo Tablestore.
getOTSErrorMessage(): descrição detalhada do erro fornecida pelo Tablestore.
getRequestId(): identificador universalmente único (UUID) associado à requisição. Se não conseguir resolver um problema, anote esse RequestId e envie um ticket.
Novas tentativas
O SDK tenta novamente as operações automaticamente quando ocorre um erro. A política padrão permite até 3 tentativas, com intervalo máximo de 2000 ms entre elas. Para mais detalhes, consulte Retry.
Também é possível personalizar a política de nova tentativa modificando o RetryPolicy em OTSClientConfig.
O SDK implementa as seguintes políticas de nova tentativa:
DefaultRetryPolicy: política padrão de nova tentativa. Repete a operação até 3 vezes, respeitando um intervalo máximo de 2000 ms. Aplica-se a erros relacionados a limitação de taxa e a erros internos do servidor em operações de leitura.
NoRetryPolicy: não executa novas tentativas.