Cómo detectar y administrar excepciones

Health Connect genera excepciones estándar para las operaciones de CRUD cuando se produce un problema. Tu app debe detectar y controlar cada una de estas excepciones según corresponda.

Cada método de HealthConnectClient enumera las excepciones que se pueden generar. En general, tu app debe controlar las siguientes excepciones:

Excepción Descripción Práctica recomendada
SecurityException Se producen problemas cuando las solicitudes requieren permisos que no se otorgan. Para evitar esto, asegúrate de haber solicitado los permisos para tu app publicada. Además, se deben declarar en el archivo de manifiesto y en tu actividad.

IOException Se producen problemas al leer y escribir datos del disco. Para evitar este problema, estas son algunas sugerencias:

  • Crea una copia de seguridad de las entradas del usuario.
  • Ten la capacidad de controlar los problemas que ocurran durante las operaciones de escritura masiva. Por ejemplo, asegúrate de que el proceso pase el problema y lleve a cabo las operaciones restantes.
  • Aplica reintentos y estrategias de retirada para controlar los problemas de las solicitudes.

IllegalStateException Se produjo una de las siguientes situaciones:

  • El servicio de Health Connect no está disponible.
  • La solicitud no es una construcción válida. Por ejemplo, una solicitud agregada en buckets periódicos en la que se usa un objeto Instant para el timeRangeFilter.

Controla posibles problemas con las entradas antes de realizar una solicitud. Preferentemente, asigna valores a las variables o úsalos como parámetros dentro de una función personalizada en lugar de usarlos de forma directa en tus solicitudes para que puedas aplicar estrategias de manejo de errores.
RemoteException Se produjeron errores en el servicio subyacente al que se conecta el SDK o en la comunicación con él.

Por ejemplo, tu app intenta borrar un registro con una uid determinada. Sin embargo, se arroja la excepción una vez que la app detecta que no existe el registro cuando se verifica en el servicio subyacente.
Para evitar este problema, estas son algunas sugerencias:

  • Realiza sincronizaciones frecuentes entre el almacén de datos de tu app y Health Connect.
  • Aplica reintentos y estrategias de retirada para controlar los problemas de las solicitudes.