Detectar e processar exceções

A plataforma Conexão Saúde gera exceções padrão para operações CRUD quando um problema é encontrado. O app precisa capturar e processar cada uma dessas exceções conforme adequado.

Cada método no HealthConnectClient lista as exceções que podem ser geradas. Em geral, o app precisa lidar com as seguintes exceções:

Exceção Descrição Prática recomendada
SecurityException Há problemas encontrados quando as solicitações exigem permissões que não são concedidas. Para evitar isso, verifique se você solicitou as permissões para o app publicado. Além disso, elas precisam ser declaradas no arquivo de manifesto e na sua atividade.

IOException Ocorreram problemas ao ler e gravar dados do disco. Para evitar esse problema, confira algumas sugestões:

  • Faça backup de qualquer entrada do usuário.
  • Resolva qualquer problema encontrado durante as operações de gravação em massa. Por exemplo, verifique se o processo resolve o problema e realize as operações restantes.
  • Aplique novas tentativas e estratégias de espera para lidar com problemas de solicitação.

IllegalStateException Ocorreu um dos seguintes cenários:

  • O serviço da plataforma Conexão Saúde não está disponível.
  • A solicitação não é uma construção válida. Por exemplo, uma solicitação agregada em buckets periódicos em que um objeto Instant é usado para timeRangeFilter.

Gerencie possíveis problemas com as entradas antes de fazer uma solicitação. De preferência, atribua valores a variáveis ou use elas como parâmetros em uma função personalizada em vez de usá-las diretamente nas solicitações para aplicar estratégias de tratamento de erros.
RemoteException Ocorreram erros na comunicação com o serviço subjacente ao qual o SDK se conecta.

Por exemplo, seu app está tentando excluir um registro com um determinado uid. No entanto, a exceção é gerada após o app descobrir, ao verificar no serviço subjacente, que o registro não existe.
Para evitar esse problema, confira algumas sugestões:

  • Faça sincronizações regulares entre o repositório de dados do app e a plataforma Conexão Saúde.
  • Aplique novas tentativas e estratégias de espera para lidar com problemas de solicitação.