Wykrywanie i obsługa wyjątków
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Health Connect zgłasza standardowe wyjątki w przypadku operacji CRUD, gdy problem
napotkano problem. Aplikacja powinna wychwytywać i obsługiwać każdy z tych wyjątków jako
odpowiednie.
Każda metoda w HealthConnectClient
zawiera listę wyjątków, które mogą zostać zgłoszone.
Zasadniczo aplikacja powinna obsługiwać te wyjątki:
Wyjątek |
Opis |
Zalecana sprawdzona metoda |
SecurityException
| Wystąpiły problemy, gdy żądania wymagają
których nie da się zastosować.
| Aby tego uniknąć, upewnij się, że
deklarowane wykorzystywanie typów danych z Health Connect na potrzeby opublikowanych
. Musisz też zadeklarować uprawnienia do Health Connect
w pliku manifestu i w aktywności.
|
IOException
| Podczas odczytywania i zapisywania danych z usługi wystąpiły problemy
dysku.
| Oto kilka wskazówek, które pomogą Ci uniknąć tego problemu:
- Utwórz kopię zapasową wszystkich danych wejściowych użytkownika.
- Musisz umieć poradzić sobie z wszelkimi problemami, które pojawiają się podczas operacji zbiorczego zapisu. Dla:
np. upewnij się, że proces wychodzi poza problem i przeprowadź proces
pozostałych operacji.
- Stosuj strategie ponownych prób i wycofywania, aby rozwiązywać problemy z żądaniami.
|
IllegalStateException
| Wystąpił jeden z tych scenariuszy:
- Usługa Health Connect jest niedostępna.
- Żądanie nie jest prawidłową konstrukcją. Na przykład żądanie zbiorcze w
zasobników okresowych, w których na potrzeby
timeRangeFilter używany jest obiekt Instant .
| Zanim wyślesz prośbę, rozwiąż możliwe problemy z danymi wejściowymi.
Najlepiej przypisać wartości do zmiennych lub użyć ich jako parametrów w obrębie niestandardowej
zamiast używać ich bezpośrednio w żądaniach, dzięki czemu można zastosować
strategii obsługi błędów.
|
RemoteException
| Wystąpiły błędy w komunikacji lub w komunikacji
z podstawową usługą, z którą łączy się pakiet SDK.
Na przykład:
aplikacja próbuje usunąć rekord z daną wartością uid . Wyjątkiem
jest zgłaszane po sprawdzeniu przez aplikację bazową, która
rekord nie istnieje.
| Oto kilka wskazówek, które pomogą Ci uniknąć tego problemu:
- Wykonuj regularne synchronizacje między magazynem danych aplikacji a Health Connect.
- Stosuj strategie ponownych prób i wycofywania, aby rozwiązywać problemy z żądaniami.
|
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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"]]