捕获和处理异常

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

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

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

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

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

IllegalStateException 发生以下情况之一

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

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

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

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