擷取及處理例外狀況
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
Health Connect 會在發生問題時擲回 CRUD 作業的標準例外狀況。您的應用程式應視情況擷取並處理這些例外狀況。
HealthConnectClient
的每個方法都列出了可以擲回的例外情況。一般來說,應用程式應處理下列例外狀況:
例外狀況 |
說明 |
建議最佳做法 |
SecurityException
| 所提要求需要用到未授予的權限時發生問題。 | 為避免這種情況,請確認您已為發布的應用程式要求權限。此外,您必須在資訊清單檔案和活動中宣告這些權限。
|
IOException
| 從磁碟讀取及寫入資料時發生問題。 | 為避免這個問題,請參考以下幾點建議:
- 將所有使用者輸入內容備份。
- 確認自己有辦法處理大量寫入作業期間發生的任何問題。例如,請確認程序會避開問題,並執行剩餘的作業。
- 套用重試和輪詢策略來處理要求問題。
|
IllegalStateException
| 發生下列任一情況:
- 無法使用 Health Connect 服務。
- 要求為無效結構。例如定期值區中的匯總要求,
Instant 物件在值區中用於 timeRangeFilter 。
| 先處理輸入內容的潛在問題,然後再提出要求。建議您為變數指派值,或將其用做自訂函式中的參數,而不要直接在要求中使用,以便套用錯誤處理策略。
|
RemoteException
| 在 SDK 連線的基礎服務中發生錯誤,或與該服務進行通訊時發生錯誤。
舉例來說,您的應用程式會嘗試刪除具有指定 uid 的記錄。然而,應用程式在基礎服務中檢查之後,若發現該記錄不存在,就會擲回例外狀況。 | 為避免這個問題,請參考以下幾點建議:
- 在應用程式的資料儲存庫和 Health Connect 間定期執行同步作業。
- 套用重試和輪詢策略來處理要求問題。
|
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2023-10-18 (世界標準時間)。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"過時"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻譯問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"容易理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]