Trate exceções de lotes

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

Com o cliente HBase do Cloud Bigtable para Java, ambos os métodos podem gerar um erro RetriesExhaustedWithDetailsException. Esta exceção é lançada quando uma ou mais das operações em lote falham por qualquer motivo (por exemplo, porque a ligação falhou). Contém uma lista de pedidos com falhas, juntamente com detalhes sobre a exceção que causou a falha de cada pedido.

Por si só, um RetriesExhaustedWithDetailsException não indica o motivo da falha de um pedido. Tem de chamar RetriesExhaustedWithDetailsException#getCauses() para obter as exceções detalhadas de cada pedido falhado. Em seguida, pode registar informações sobre cada uma das exceções detalhadas, o que ajuda a diagnosticar a falha:

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

Também pode ser gerada uma exceção quando chama flush ou close. Aplica-se o mesmo processamento de erros.