Ausnahmen abfangen und verarbeiten

Health Connect gibt Standardausnahmen für CRUD-Vorgänge aus, wenn ein Problem auftritt. Ihre Anwendung sollte jede dieser Ausnahmen erfassen und entsprechend verarbeiten.

Jede Methode in HealthConnectClient listet die Ausnahmen auf, die ausgelöst werden können. Im Allgemeinen sollte Ihre App die folgenden Ausnahmen verarbeiten:

Ausnahme Beschreibung Empfohlene Best Practice
SecurityException Wenn für die Anfragen Berechtigungen erforderlich sind, die nicht gewährt wurden, treten Probleme auf. Wenn du das vermeiden möchtest, musst du die Berechtigungen für deine veröffentlichte App angefordert haben. Diese müssen auch in der Manifestdatei und in deinen Aktivitäten deklariert werden.

IOException Beim Lesen und Schreiben von Daten vom Laufwerk treten Probleme auf. So können Sie dieses Problem vermeiden:

  • Sichern Sie alle Nutzereingaben.
  • In der Lage sein, alle Probleme zu beheben, die bei Bulk-Schreibvorgängen auftreten Sorgen Sie beispielsweise dafür, dass der Prozess das Problem überwindet und die restlichen Vorgänge ausführt.
  • Wenden Sie Wiederholungsversuche und Backoff-Strategien an, um Anfrageprobleme zu beheben.

IllegalStateException Eines der folgenden Szenarien ist aufgetreten:

  • Der Health Connect-Dienst ist nicht verfügbar.
  • Die Anfrage ist keine gültige Konstruktion. Zum Beispiel eine zusammengefasste Anfrage in regelmäßigen Buckets, bei denen ein Instant-Objekt für timeRangeFilter verwendet wird.

Beheben Sie zuerst mögliche Probleme mit den Eingaben, bevor Sie eine Anfrage ausführen. Vorzugsweise sollten Sie Variablen Werte zuweisen oder sie als Parameter in einer benutzerdefinierten Funktion verwenden, anstatt sie direkt in Ihren Anfragen zu verwenden. So können Sie Strategien zur Fehlerbehandlung anwenden.
RemoteException Es sind Fehler im zugrunde liegenden Dienst oder bei der Kommunikation mit dem zugrunde liegenden Dienst aufgetreten, mit dem das SDK eine Verbindung herstellt.

Angenommen, Ihre Anwendung versucht, einen Eintrag mit einem bestimmten uid zu löschen. Die Ausnahme wird jedoch ausgelöst, nachdem die Anwendung bei der Überprüfung des zugrunde liegenden Dienstes festgestellt hat, dass der Eintrag nicht vorhanden ist.
So können Sie dieses Problem vermeiden:

  • Führen Sie regelmäßige Synchronisierungen zwischen dem Datenspeicher Ihrer App und Health Connect durch.
  • Wenden Sie Wiederholungsversuche und Backoff-Strategien an, um Anfrageprobleme zu beheben.