예외 캐치 및 처리

헬스 커넥트는 문제가 발생하면 CRUD 작업에 관한 표준 예외를 발생시킵니다. 앱은 이러한 예외를 적절하게 포착하고 처리해야 합니다.

HealthConnectClient의 각 메서드는 발생할 수 있는 예외를 나열합니다. 앱에서는 일반적으로 다음을 처리해야 합니다.

예외 설명 권장사항
SecurityException 요청에 부여되지 않은 권한이 필요한 경우 문제가 발생합니다. 이를 방지하려면 게시된 앱의 헬스 커넥트 데이터 유형 사용 선언 있습니다. 또한 헬스 커넥트 권한을 선언해야 합니다. 매니페스트 파일활동에서 확인할 수 있습니다.

IOException 디스크에서 데이터를 읽고 쓸 때 문제가 발생합니다. 이 문제를 방지하기 위한 권장사항은 다음과 같습니다.

  • 사용자 입력을 백업합니다.
  • 일괄 쓰기 작업 중에 발생하는 모든 문제를 처리할 수 있어야 합니다. 예를 들어, 문제가 발생하더라도 이 프로세스가 계속 진행되고 나머지 작업을 수행하도록 합니다.
  • 재시도 및 백오프 전략을 적용하여 요청 문제를 처리합니다.

IllegalStateException 다음 시나리오 중 하나가 발생했습니다.

  • 헬스 커넥트 서비스를 사용할 수 없습니다.
  • 요청이 유효한 구성이 아닙니다. 예를 들어, Instant 객체가 timeRangeFilter에 사용되는 주기적 버킷의 포함된 집계 요청입니다.

요청을 진행하기 전에 먼저 입력과 관련하여 발생할 수 있는 문제를 해결합니다. 오류 처리 전략을 적용할 수 있도록, 요청에서 값을 직접 사용하는 대신 값을 변수에 할당하거나 사용자설정 함수 내에서 매개변수로 사용합니다.
RemoteException SDK가 연결되는 기본 서비스에서 또는 서비스와 통신하면서 오류가 발생했습니다.

예를 들어, 앱이 주어진 uid를 사용하여 레코드를 삭제하려고 하지만 앱이 기본 서비스에서 레코드가 존재하지 않는다는 사실을 확인한 후에 예외가 발생합니다.
이 문제를 방지하기 위한 권장사항은 다음과 같습니다.

  • 앱의 데이터 스토어와 헬스 커넥트를 정기적으로 동기화합니다.
  • 재시도 및 백오프 전략을 적용하여 요청 문제를 처리합니다.