Intercepter et gérer les exceptions
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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
utilisation déclarée des types de données Santé Connect pour vos publications
l'application. De plus, vous devez déclarer les autorisations Santé Connect
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.
|
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# Catch and handle exceptions\n\nHealth Connect throws standard exceptions for CRUD operations when an issue is\nencountered. Your app should catch and handle each of these exceptions as\nappropriate.\n\nEach method on `HealthConnectClient` lists the exceptions that can be thrown.\nIn general, your app should handle the following exceptions:\n\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| **Exception** | **Description** | **Recommended best practice** |\n|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `SecurityException` | There are issues encountered when the requests require permissions that aren't granted. | To avoid this, make sure that you've [declared use of Health Connect data types](/guide/health-and-fitness/health-connect/develop/frequently-asked-questions#declare-access) for your published app. Also, you must declare Health Connect permissions [in the manifest file](/guide/health-and-fitness/health-connect/develop/get-started#step-3) and [in your activity](/guide/health-and-fitness/health-connect/develop/get-started#step-4). \u003cbr /\u003e \u003cbr /\u003e |\n| `IOException` | There are issues encountered upon reading and writing data from disk. | To avoid this issue, here are some suggestions: \u003cbr /\u003e - Back up any user input. - Be able to handle any issues that occur during bulk write operations. For example, make sure the process moves past the issue and carry out the remaining operations. - Apply retries and backoff strategies to handle request issues. \u003cbr /\u003e |\n| `IllegalStateException` | One of the following scenarios has occurred: \u003cbr /\u003e - The Health Connect service isn't available. - The request isn't a valid construction. For example, an aggregate request in periodic buckets where an `Instant` object is used for the `timeRangeFilter`. \u003cbr /\u003e | Handle possible issues with the inputs first before doing a request. Preferably, assign values to variables or use them as parameters within a custom function instead of using them directly in your requests so that you can apply error handling strategies. |\n| `RemoteException` | Errors have occurred within, or in communicating with, the underlying service to which the SDK connects. For example, your app is trying to delete a record with a given `uid`. However, the exception is thrown after the app finds out upon checking in the underlying service that the record doesn't exist. | To avoid this issue, here are some suggestions: \u003cbr /\u003e - Perform regular syncs between your app's datastore and Health Connect. - Apply retries and backoff strategies to handle request issues. \u003cbr /\u003e |\n\n\u003cbr /\u003e"]]