O kit de desenvolvimento de software (SDK) Python do Tablestore utiliza exceções para tratar erros. Este tópico descreve os métodos de tratamento de erros do Tablestore, as informações das exceções e as políticas de nova tentativa.
Método
O SDK Python do Tablestore usa exceções para tratar erros. Uma chamada de API é bem-sucedida quando nenhuma exceção é lançada. Se uma exceção for lançada, a operação falhou.
Em operações em lote, como BatchGetRow e BatchWriteRow, verifique se há 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 SDK Python do Tablestore define dois tipos de exceções: OTSClientError e OTSServiceError. Ambas herdam da classe Exception.
OTSClientError: Indica uma exceção ocorrida no SDK, como parâmetros configurados incorretamente ou erro ao analisar o resultado retornado.
-
OTSServiceError: Representa um erro no lado do servidor, extraído da resposta recebida. O OTSServiceError contém os seguintes membros:
get_http_status: Código de retorno HTTP, como 200 ou 404.
get_error_code: String com o tipo de erro retornado pelo Tablestore.
get_error_message: Mensagem de erro em formato string retornada pelo Tablestore.
get_request_id: Identificador universalmente único (UUID) que identifica a requisição de forma exclusiva. Se não conseguir resolver o problema, anote esse ID de requisição e envie um ticket.
Novas tentativas
O SDK repete automaticamente uma operação quando ocorre um erro. Por padrão, o número máximo de novas tentativas é 20 e o intervalo máximo entre elas é de 3000 ms. Em operações de leitura, o SDK repete tentativas em casos de erros de limitação de taxa e erros internos do servidor. Para mais informações, consulte tablestore/retry.py.
Para criar uma política de nova tentativa personalizada, herde da classe RetryPolicy. Ao inicializar um objeto OTSClient, passe essa política personalizada como parâmetro.
O SDK oferece as seguintes políticas de nova tentativa.
DefaultRetryPolicy: Política padrão de nova tentativa. Aplica-se apenas a operações de leitura, com limite de 20 tentativas e intervalo máximo de 3000 ms.
NoRetryPolicy: Não executa novas tentativas.
NoDelayRetryPolicy: Política sem atraso entre as tentativas. Utilize esta opção com cautela.
WriteRetryPolicy: Estende a política padrão para incluir também novas tentativas em operações de escrita.