Detectar e processar exceções
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A plataforma Conexão Saúde gera exceções padrão para operações CRUD quando um problema é
encontrado. O app precisa capturar e processar cada uma dessas exceções conforme
adequado.
Cada método no HealthConnectClient
lista as exceções que podem ser geradas.
Em geral, o app precisa lidar com as seguintes exceções:
Exceção |
Descrição |
Prática recomendada |
SecurityException
| Há problemas encontrados quando as solicitações exigem
permissões que não são concedidas.
| Para evitar isso, certifique-se de que
declarar o uso de tipos de dados do app Conexão Saúde para sua
app. Além disso, é necessário declarar as permissões da Conexão Saúde
no arquivo de manifesto e na sua atividade.
|
IOException
| Ocorreram problemas ao ler e gravar dados do
disco.
| Para evitar esse problema, confira algumas sugestões:
- Faça backup de qualquer entrada do usuário.
- Resolva qualquer problema encontrado durante as operações de gravação em massa. Por
exemplo, verifique se o processo resolve o problema e realize as
operações restantes.
- Aplique novas tentativas e estratégias de espera para lidar com problemas de solicitação.
|
IllegalStateException
| Ocorreu um dos seguintes cenários:
- O serviço da plataforma Conexão Saúde não está disponível.
- A solicitação não é uma construção válida. Por exemplo, uma solicitação agregada em
buckets periódicos em que um objeto
Instant é usado para timeRangeFilter .
| Gerencie possíveis problemas com as entradas antes de fazer uma solicitação.
De preferência, atribua valores a variáveis ou use elas como parâmetros em uma função
personalizada em vez de usá-las diretamente nas solicitações para aplicar
estratégias de tratamento de erros.
|
RemoteException
| Ocorreram erros na
comunicação com o serviço subjacente ao qual o SDK se conecta.
Por exemplo,
seu app está tentando excluir um registro com um determinado uid . No entanto, a exceção
é gerada após o app descobrir, ao verificar no serviço subjacente, que
o registro não existe.
| Para evitar esse problema, confira algumas sugestões:
- Faça sincronizações regulares entre o repositório de dados do app e a plataforma Conexão Saúde.
- Aplique novas tentativas e estratégias de espera para lidar com problemas de solicitação.
|
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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"]]