Compartilhar via


Método SaveChangeWithChangeUnitsContext.RecordRecoverableErrorForChangeUnit

Indica que um erro recuperável ocorreu quando os dados dessa unidade de alteração foram salvos no repositório de itens.

Namespace: Microsoft.Synchronization
Assembly: Microsoft.Synchronization (em microsoft.synchronization.dll)

Sintaxe

'Declaração
Public Sub RecordRecoverableErrorForChangeUnit ( _
    changeUnitChange As ChangeUnitChange, _
    errorData As RecoverableErrorData _
)
'Uso
Dim instance As SaveChangeWithChangeUnitsContext
Dim changeUnitChange As ChangeUnitChange
Dim errorData As RecoverableErrorData

instance.RecordRecoverableErrorForChangeUnit(changeUnitChange, errorData)
public void RecordRecoverableErrorForChangeUnit (
    ChangeUnitChange changeUnitChange,
    RecoverableErrorData errorData
)
public:
void RecordRecoverableErrorForChangeUnit (
    ChangeUnitChange^ changeUnitChange, 
    RecoverableErrorData^ errorData
)
public void RecordRecoverableErrorForChangeUnit (
    ChangeUnitChange changeUnitChange, 
    RecoverableErrorData errorData
)
public function RecordRecoverableErrorForChangeUnit (
    changeUnitChange : ChangeUnitChange, 
    errorData : RecoverableErrorData
)

Parâmetros

  • changeUnitChange
    A alteração da unidade de alteração que causou o erro.
  • errorData
    Informações adicionais sobre o erro.

Exceções

Tipo de exceção Condição

CreateFailuresMustBeForEntireItemException

A ação de salvamento contida no objeto SaveChangeWithChangeUnitsContext é Create. Nessa situação, a criação de todo o item deve falhar.

Comentários

Quando esse método é chamado, um objeto ItemChangeUnitOverride é adicionado ao conhecimento adquirido e a alteração da unidade de alteração não será enumerada novamente durante a sessão de sincronização.

Exemplo

O exemplo a seguir tenta criar ou atualizar uma unidade de alteração na réplica de destino. Quando ocorre uma exceção, um erro recuperável que contém a exceção é registrado para a unidade de alteração e a sincronização continua.

Case SaveChangeAction.Create, SaveChangeAction.UpdateVersionAndData
    If True Then
        ' Update the item store and metadata store for the specified change unit.
        Try
            Dim cuData As String = DirectCast(context.ChangeData, String())(cuChange.ChangeUnitId.GetByteId())
            _ContactStore.UpdateContactFromSync(change, cuChange, cuData)
        Catch ex As Exception
            Dim errData As New RecoverableErrorData(ex)
            context.RecordRecoverableErrorForChangeUnit(cuChange, errData)
        End Try
        Exit Select
    End If
case SaveChangeAction.Create:
case SaveChangeAction.UpdateVersionAndData:
{
    // Update the item store and metadata store for the specified change unit.
    try
    {
        string cuData = ((string[])context.ChangeData)[cuChange.ChangeUnitId.GetByteId()];
        _ContactStore.UpdateContactFromSync(change, cuChange, cuData);
    }
    catch (Exception ex)
    {
        RecoverableErrorData errData = new RecoverableErrorData(ex);
        context.RecordRecoverableErrorForChangeUnit(cuChange, errData);
    }
    break;
}

Consulte também

Referência

Classe SaveChangeWithChangeUnitsContext
Membros SaveChangeWithChangeUnitsContext
Namespace Microsoft.Synchronization