擷取及處理例外狀況

Health Connect 會在發生問題時擲回 CRUD 作業的標準例外狀況。您的應用程式應視情況擷取並處理這些例外狀況。

HealthConnectClient 的每個方法都列出了可以擲回的例外情況。一般來說,應用程式應處理下列例外狀況:

例外狀況 說明 建議最佳做法
SecurityException 所提要求需要用到未授予的權限時發生問題。為避免這種情況,請確認您已為發布的應用程式要求權限。此外,您必須在資訊清單檔案活動中宣告這些權限。

IOException 從磁碟讀取及寫入資料時發生問題。為避免這個問題,請參考以下幾點建議:

  • 將所有使用者輸入內容備份。
  • 確認自己有辦法處理大量寫入作業期間發生的任何問題。例如,請確認程序會避開問題,並執行剩餘的作業。
  • 套用重試和輪詢策略來處理要求問題。

IllegalStateException 發生下列任一情況:

  • 無法使用 Health Connect 服務。
  • 要求為無效結構。例如定期值區中的匯總要求,Instant 物件在值區中用於 timeRangeFilter

先處理輸入內容的潛在問題,然後再提出要求。建議您為變數指派值,或將其用做自訂函式中的參數,而不要直接在要求中使用,以便套用錯誤處理策略。
RemoteException 在 SDK 連線的基礎服務中發生錯誤,或與該服務進行通訊時發生錯誤。

舉例來說,您的應用程式會嘗試刪除具有指定 uid 的記錄。然而,應用程式在基礎服務中檢查之後,若發現該記錄不存在,就會擲回例外狀況。
為避免這個問題,請參考以下幾點建議:

  • 在應用程式的資料儲存庫和 Health Connect 間定期執行同步作業。
  • 套用重試和輪詢策略來處理要求問題。