Поделиться через


Метод RecordRecoverableErrorForChangeUnit

Показывает, что во время сохранения данных для этой базовой единицы в хранилище элементов произошла устранимая ошибка.

Пространство имен:  Microsoft.Synchronization
Сборка:  Microsoft.Synchronization (в Microsoft.Synchronization.dll)

Синтаксис

'Декларация
Public Sub RecordRecoverableErrorForChangeUnit ( _
    changeUnitChange As ChangeUnitChange, _
    errorData As RecoverableErrorData _
)
'Применение
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
)
member RecordRecoverableErrorForChangeUnit : 
        changeUnitChange:ChangeUnitChange * 
        errorData:RecoverableErrorData -> unit 
public function RecordRecoverableErrorForChangeUnit(
    changeUnitChange : ChangeUnitChange, 
    errorData : RecoverableErrorData
)

Параметры

Исключения

Исключение Условие
CreateFailuresMustBeForEntireItemException

Действие сохранения, содержащееся в объекте SaveChangeWithChangeUnitsContext, равно Create. В этом случае создание всего элемента должно завершиться неудачно.

Замечания

Когда вызывается этот метод, объект ItemChangeUnitOverride добавляется в набор известных знаний, а изменение базовой единицы не будет повторно перечисляться на протяжении сеанса синхронизации.

Примеры

В следующем примере предпринимается попытка создать или обновить базовую единицу на реплике назначения. Когда возникает исключение, для базовой единицы записывается устранимая ошибка, содержащая исключение, и синхронизация продолжается.

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;
}

См. также

Справочник

SaveChangeWithChangeUnitsContext Класс

Элементы SaveChangeWithChangeUnitsContext

Пространство имен Microsoft.Synchronization