El kit de desarrollo de software (SDK) de Python para Tablestore gestiona los errores mediante excepciones. Este tema describe los métodos de manejo de errores de Tablestore, la información de las excepciones y las directivas de reintentos.
Método
El SDK de Python para Tablestore usa excepciones para gestionar errores. Una llamada a la API se considera correcta si no se lanza ninguna excepción. Si se lanza una excepción, la operación falló.
Para las operaciones por lotes, como BatchGetRow y BatchWriteRow, compruebe si hay excepciones y compruebe el estado de cada fila. La llamada a la API solo se considera correcta si todas las filas se procesan correctamente.
Excepciones
El SDK de Python para Tablestore define dos tipos de excepciones: OTSClientError y OTSServiceError. Ambas heredan de la clase Exception.
OTSClientError: Indica una excepción ocurrida dentro del SDK, como una configuración incorrecta de parámetros o un error al analizar sintácticamente el resultado devuelto.
-
OTSServiceError: Indica un error del lado del servidor obtenido al analizar sintácticamente la respuesta. OTSServiceError contiene los siguientes miembros:
get_http_status: Código de retorno HTTP, como 200 o 404.
get_error_code: Cadena del tipo de error devuelta por Tablestore.
get_error_message: Cadena del mensaje de error devuelta por Tablestore.
get_request_id: Identificador único universal (UUID) que identifica de forma única la solicitud. Si no logra resolver un problema, registre este ID de solicitud y envíe un ticket.
Reintentos
El SDK reintenta automáticamente una operación cuando ocurre un error. De forma predeterminada, el número máximo de reintentos es 20 y el intervalo máximo entre reintentos es de 3000 ms. El SDK reintenta errores de limitación de tasa y errores internos del servidor en operaciones de lectura. Para obtener más información, consulte tablestore/retry.py.
Para crear una directiva de reintentos personalizada, herede de la clase RetryPolicy. Al inicializar un objeto OTSClient, pase la directiva de reintentos personalizada como parámetro.
El SDK proporciona las siguientes directivas de reintentos:
DefaultRetryPolicy: Directiva de reintentos predeterminada. Solo reintenta operaciones de lectura. El número máximo de reintentos es 20 y el intervalo máximo entre reintentos es de 3000 ms.
NoRetryPolicy: No se realizan reintentos.
NoDelayRetryPolicy: Directiva de reintentos sin retraso. Use esta directiva con precaución.
WriteRetryPolicy: Basada en la directiva de reintentos predeterminada, también reintenta operaciones de escritura.