예외 캐치 및 처리
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
헬스 커넥트는 문제가 발생하면 CRUD 작업에 관한 표준 예외를 발생시킵니다. 앱은 이러한 예외를 적절하게 포착하고 처리해야 합니다.
HealthConnectClient
의 각 메서드는 발생할 수 있는 예외를 나열합니다.
앱에서는 일반적으로 다음을 처리해야 합니다.
예외 |
설명 |
권장사항 |
SecurityException
| 요청에 부여되지 않은 권한이 필요한 경우 문제가 발생합니다.
| 이를 방지하려면
게시된 앱의 헬스 커넥트 데이터 유형 사용 선언
있습니다. 또한 헬스 커넥트 권한을 선언해야 합니다.
매니페스트 파일 및 활동에서 확인할 수 있습니다.
|
IOException
| 디스크에서 데이터를 읽고 쓸 때 문제가 발생합니다.
| 이 문제를 방지하기 위한 권장사항은 다음과 같습니다.
- 사용자 입력을 백업합니다.
- 일괄 쓰기 작업 중에 발생하는 모든 문제를 처리할 수 있어야 합니다. 예를 들어, 문제가 발생하더라도 이 프로세스가 계속 진행되고 나머지 작업을 수행하도록 합니다.
- 재시도 및 백오프 전략을 적용하여 요청 문제를 처리합니다.
|
IllegalStateException
| 다음 시나리오 중 하나가 발생했습니다.
- 헬스 커넥트 서비스를 사용할 수 없습니다.
- 요청이 유효한 구성이 아닙니다. 예를 들어,
Instant 객체가 timeRangeFilter 에 사용되는 주기적 버킷의 포함된 집계 요청입니다.
| 요청을 진행하기 전에 먼저 입력과 관련하여 발생할 수 있는 문제를 해결합니다.
오류 처리 전략을 적용할 수 있도록, 요청에서 값을 직접 사용하는 대신 값을 변수에 할당하거나 사용자설정 함수 내에서 매개변수로 사용합니다.
|
RemoteException
| SDK가 연결되는 기본 서비스에서 또는 서비스와 통신하면서 오류가 발생했습니다.
예를 들어, 앱이 주어진 uid 를 사용하여 레코드를 삭제하려고 하지만 앱이 기본 서비스에서 레코드가 존재하지 않는다는 사실을 확인한 후에 예외가 발생합니다.
| 이 문제를 방지하기 위한 권장사항은 다음과 같습니다.
- 앱의 데이터 스토어와 헬스 커넥트를 정기적으로 동기화합니다.
- 재시도 및 백오프 전략을 적용하여 요청 문제를 처리합니다.
|
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(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"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# Catch and handle exceptions\n\nHealth Connect throws standard exceptions for CRUD operations when an issue is\nencountered. Your app should catch and handle each of these exceptions as\nappropriate.\n\nEach method on `HealthConnectClient` lists the exceptions that can be thrown.\nIn general, your app should handle the following exceptions:\n\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| **Exception** | **Description** | **Recommended best practice** |\n|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `SecurityException` | There are issues encountered when the requests require permissions that aren't granted. | To avoid this, make sure that you've [declared use of Health Connect data types](/guide/health-and-fitness/health-connect/develop/frequently-asked-questions#declare-access) for your published app. Also, you must declare Health Connect permissions [in the manifest file](/guide/health-and-fitness/health-connect/develop/get-started#step-3) and [in your activity](/guide/health-and-fitness/health-connect/develop/get-started#step-4). \u003cbr /\u003e \u003cbr /\u003e |\n| `IOException` | There are issues encountered upon reading and writing data from disk. | To avoid this issue, here are some suggestions: \u003cbr /\u003e - Back up any user input. - Be able to handle any issues that occur during bulk write operations. For example, make sure the process moves past the issue and carry out the remaining operations. - Apply retries and backoff strategies to handle request issues. \u003cbr /\u003e |\n| `IllegalStateException` | One of the following scenarios has occurred: \u003cbr /\u003e - The Health Connect service isn't available. - The request isn't a valid construction. For example, an aggregate request in periodic buckets where an `Instant` object is used for the `timeRangeFilter`. \u003cbr /\u003e | Handle possible issues with the inputs first before doing a request. Preferably, assign values to variables or use them as parameters within a custom function instead of using them directly in your requests so that you can apply error handling strategies. |\n| `RemoteException` | Errors have occurred within, or in communicating with, the underlying service to which the SDK connects. For example, your app is trying to delete a record with a given `uid`. However, the exception is thrown after the app finds out upon checking in the underlying service that the record doesn't exist. | To avoid this issue, here are some suggestions: \u003cbr /\u003e - Perform regular syncs between your app's datastore and Health Connect. - Apply retries and backoff strategies to handle request issues. \u003cbr /\u003e |\n\n\u003cbr /\u003e"]]