捕获和处理异常

当遇到问题时,Health Connect 会为 CRUD 操作抛出标准异常。您的应用应根据需要捕获并处理这些异常。

HealthConnectClient 上的每个方法都列出了可能抛出的异常。通常,您的应用应处理以下异常

异常 描述 推荐最佳实践
SecurityException 当请求需要未授予的权限时,会遇到问题。为避免此问题,请确保您已 声明已发布应用中 Health Connect 数据类型的使用情况。此外,您必须在 清单文件中活动中 声明 Health Connect 权限。

IOException 从磁盘读取和写入数据时遇到问题。为避免此问题,以下是一些建议

  • 备份任何用户输入。
  • 能够处理批量写入操作期间发生的任何问题。例如,确保流程能够绕过问题并执行剩余的操作。
  • 应用重试和回退策略来处理请求问题。

IllegalStateException 以下场景之一已发生

  • Health Connect 服务不可用。
  • 请求不是有效的构造。例如,在周期性存储桶中的聚合请求,其中 Instant 对象用于 timeRangeFilter

在发出请求之前,首先处理输入的可能问题。最好将值分配给变量或在自定义函数中将它们用作参数,而不是直接在请求中使用它们,以便您可以应用错误处理策略。
RemoteException 在 SDK 连接到的底层服务中或与之通信时发生错误。

例如,您的应用尝试使用给定的 uid 删除记录。但是,在应用在底层服务中检查后发现记录不存在后,会抛出此异常。
为避免此问题,以下是一些建议

  • 在应用的数据存储和 Health Connect 之间执行定期同步。
  • 应用重试和回退策略来处理请求问题。