Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ /

Lidar com erros de sincronização e tempos limite - .NET SDK

Nesta página

  • Definir o nível de log do cliente
  • Personalizar a função de registro
  • Lidar com tempos limite

O Device Sync representa erros por meio de SessionExceptions. Além das propriedades de exceção padrão, você tem acesso a um ErrorCode que contém informações sobre o tipo do erro e permite que você tenha lógica de tratamento fortemente digitada.

config.OnSessionError = (session, sessionException) =>
{
switch (sessionException.ErrorCode)
{
// See https://www.mongodb.com/pt-br/docs/realm-sdks/dotnet/latest/reference/Realms.Sync.Exceptions.ErrorCode.html
// for a list of all error codes
case ErrorCode.BadQuery:
break;
}
};

Observação

Informações adicionais de exceção

Por motivos de segurança, o App Services pode enviar apenas uma quantidade mínima de informações sobre uma exceção, mas os registros do lado do servidor conterão mais detalhes. Nesses casos, o HelpLink A propriedade na exceção contém um link para a entrada de registro associada.

Dica

Para obter uma lista de erros comuns do Device Sync e como gerenciá-los, consulte Erros de sincronização na documentação do Atlas App Services Device Sync .

Para controlar quais mensagens são registradas pelo registrador do cliente, use LogLevel:

Logger.LogLevel = LogLevel.Debug;

Dica

Para diagnosticar e solucionar erros ao desenvolver seu aplicativo, defina o nível de registro como debug ou trace. Para sistemas de produção, diminua o nível de registro para melhorar o desempenho.

Para definir uma função de registrador personalizada, defina Logger.Default para uma função de registrador personalizada.

using Realms.Logging;
Logger.LogLevel = LogLevel.All;
// customize the logging function:
Logger.Default = Logger.Function(message =>
{
// Do something with the message
});

Durante as sessões de sincronização, os eventos podem atingir o tempo limite sem lançar uma exceção. Você pode definir o CancelAsyncOperationsOnNonFatalErrors como true para que esses eventos lancem uma exceção com a qual você possa manipular. O código a seguir mostra um exemplo de definição da propriedade CancelAsyncOperationsOnNonFatalErrors e 3 eventos que lançarão uma exceção se atingirem o tempo limite:

var config = new FlexibleSyncConfiguration(app.CurrentUser!)
{
CancelAsyncOperationsOnNonFatalErrors = true,
};
// These operations will throw an exception
// on timeout or other transient sync session errors.
var realm = await Realm.GetInstanceAsync(config);
var session = realm.SyncSession;
await session.WaitForUploadAsync();
await session.WaitForDownloadAsync();

Voltar

Gerenciar assinaturas de sincronização flexível