Rilevamento e gestione delle eccezioni

Connessione Salute genera eccezioni standard per le operazioni CRUD quando un problema viene rilevato riscontrati. L'app deve rilevare e gestire ciascuna di queste eccezioni come appropriato.

Ogni metodo su HealthConnectClient elenca le eccezioni che è possibile generare. In generale, l'app deve gestire le seguenti eccezioni:

Eccezione Descrizione Best practice consigliata
SecurityException Si sono verificati problemi quando le richieste richiedono autorizzazioni non concesse. Per evitare che ciò accada, assicurati di avere dichiarato di utilizzo dei tipi di dati di Connessione Salute per i tuoi contenuti pubblicati dell'app. Inoltre, devi dichiarare le autorizzazioni di Connessione Salute nel file manifest e nella tua attività.

IOException Si sono verificati problemi durante la lettura e la scrittura dei dati da disco. Per evitare il problema, ecco alcuni suggerimenti:

  • Esegui il backup di qualsiasi input utente.
  • Essere in grado di gestire eventuali problemi che si verificano durante le operazioni di scrittura collettiva. Per Ad esempio, assicurati che la procedura superi il problema ed esegui la le operazioni rimanenti.
  • Applicare nuovi tentativi e strategie di backoff per gestire i problemi delle richieste.

IllegalStateException Si è verificato uno dei seguenti scenari:

  • Il servizio Connessione Salute non è disponibile.
  • La richiesta non è una costruzione valida. Ad esempio, una richiesta aggregata bucket periodici in cui viene utilizzato un oggetto Instant per timeRangeFilter.

Gestisci i possibili problemi con gli input prima di eseguire una richiesta. Preferibilmente, assegna valori alle variabili o utilizzali come parametri all'interno di un invece di usarle direttamente nelle tue richieste, in modo che tu possa strategie di gestione degli errori.
RemoteException Si sono verificati errori all'interno di o durante la comunicazione con il servizio sottostante a cui si connette l'SDK.

Ad esempio, la tua app sta tentando di eliminare un record con un determinato uid. Tuttavia, l'eccezione viene generata dopo che l'app scopre, al momento del controllo nel servizio sottostante, il record non esiste.
Per evitare il problema, ecco alcuni suggerimenti:

  • Esegui sincronizzazioni regolari tra il datastore della tua app e Connessione Salute.
  • Applicare nuovi tentativi e strategie di backoff per gestire i problemi delle richieste.