Processar exceções em lote

A API HBase oferece duas maneiras de enviar várias operações como um lote:

Com o cliente HBase do Cloud Bigtable para Java, esses dois métodos podem gerar um RetriesExhaustedWithDetailsException. Essa exceção é lançada quando uma ou mais das operações em lote falham por qualquer motivo (por exemplo, por causa de uma falha na conexão). Ela contém uma lista das solicitações com falha, além de detalhes sobre a exceção que causou a falha em cada solicitação.

Por si só, um RetriesExhaustedWithDetailsException não informa por que uma solicitação falhou. Você precisa chamar RetriesExhaustedWithDetailsException#getCauses() para recuperar as exceções detalhadas de cada solicitação com falha. Em seguida, você pode registrar informações sobre cada uma das exceções detalhadas, o que ajudará a diagnosticar a falha:

try {
  mutator.mutate(mutationList);
} catch (RetriesExhaustedWithDetailsException e) {
  for (Throwable cause : e.getCauses()) {
    cause.printStackTrace();
  }
  throw e;
}

Uma exceção também pode ser gerada quando você chama flush ou close. O mesmo tratamento de erros se aplica.