Intercepter et gérer les exceptions

Santé Connect génère des exceptions standards pour les opérations CRUD en cas de problème. Votre application doit détecter et gérer chacune de ces exceptions de manière appropriée.

Chaque méthode sur HealthConnectClient indique les exceptions qui peuvent être levées. En général, votre application doit gérer les exceptions suivantes :

Exception Description Bonne pratique recommandée
SecurityException Des problèmes surviennent lorsque les requêtes nécessitent des autorisations qui ne sont pas accordées. Pour éviter cela, assurez-vous d'avoir demandé les autorisations requises pour l'application que vous avez publiée. Elles doivent également être déclarées dans le fichier manifeste et dans votre activité.

IOException Des problèmes surviennent lors de la lecture et de l'écriture des données sur le disque. Pour éviter cela, voici quelques suggestions :

  • Sauvegardez les entrées utilisateur.
  • Soyez prêt à gérer les problèmes qui surviennent lors des opérations d'écriture groupée. Par exemple, assurez-vous que le processus ne reste pas bloqué par le problème et qu'il poursuit les opérations restantes.
  • Appliquez des stratégies spécifiques aux nouvelles tentatives et aux intervalles entre les tentatives pour gérer les problèmes de requête.

IllegalStateException L'un des scénarios suivants s'est produit :

  • Le service Santé Connect n'est pas disponible.
  • La requête n'est pas une construction valide (par exemple, une requête globale dans des buckets périodiques où un objet Instant est utilisé pour timeRangeFilter).

Traitez d'abord les problèmes potentiels liés aux entrées avant d'effectuer une requête. De préférence, attribuez des valeurs aux variables ou utilisez-les comme paramètres dans une fonction personnalisée plutôt que de les utiliser directement dans vos requêtes afin de pouvoir appliquer des stratégies de gestion des erreurs.
RemoteException Des erreurs se sont produites au sein du service sous-jacent auquel le SDK se connecte, ou lors de sa communication avec celui-ci.

(par exemple, votre application tente de supprimer un enregistrement associé à un uid donné). Toutefois, l'exception est générée lorsque l'application découvre que l'enregistrement n'existe pas après avoir vérifié le service sous-jacent.
Pour éviter cela, voici quelques suggestions :

  • Effectuez des synchronisations régulières entre le datastore de votre application et Santé Connect.
  • Appliquez des stratégies spécifiques aux nouvelles tentatives et aux intervalles entre les tentatives pour gérer les problèmes de requête.