例外をキャッチして処理する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
ヘルスコネクトは、問題が発生した場合に CRUD 操作について標準的な例外をスローします。すべてのアプリで、これらを適切にキャッチして処理する必要があります。
HealthConnectClient
の各メソッドは、スローされる可能性のある例外をリストしますが、一般に次のような処理が必要です。
例外 |
説明 |
推奨されるベスト プラクティス |
SecurityException
| 現在付与されていない権限を必要とするリクエストの場合にスローされます。 | これを回避するには、
公開データのヘルスコネクトのデータ型の使用を宣言
。また、ヘルスコネクトの権限を宣言して、
(マニフェスト ファイルとアクティビティ内)で宣言します。
|
IOException
| ディスクのデータの読み取りと書き込みで問題が発生した場合にスローされます。 | この問題を回避するには、次の方法をお試しください。
- ユーザー入力をバックアップします。
- 一括書き込みオペレーション中に発生した問題に対処できるようにします。たとえば、プロセスで問題を越えたことを確認してから、残りの操作を行うようにします。
- リクエストの問題に対処するために、再試行とバックオフの戦略を適用します。
|
IllegalStateException
| 次のいずれかの状況が発生した場合にスローされます。
- ヘルスコネクト サービスを利用できない。
- リクエストが有効な構造でない(
timeRangeFilter に Instant オブジェクトが使用される定期的なバケットでの集計リクエストなど)。
| リクエストを処理する前に、入力に関する潜在的な問題に対処します。リクエストで値を直接使用する代わりに、カスタム関数内で変数に値を代入するか、パラメータとして使用することをおすすめします。そうすることで、エラー処理戦略を適用できます。 |
RemoteException
| SDK が接続されている基となるサービスでエラーが発生したか、サービスとの通信中にエラーが発生した場合にスローされます。
たとえば、アプリが特定の uid を持つレコードを削除しようとした場合に、基となるサービスでチェックして初めてレコードが存在しないことが検出されると、例外がスローされます。 | この問題を回避するには、次の方法をお試しください。
- アプリのデータストアとヘルスコネクトの間で定期的に同期を実行します。
- リクエストの問題に対処するために、再試行とバックオフの戦略を適用します。
|
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2024-09-05 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2024-09-05 UTC。"],[],[]]