Метод RecoverableErrorReportingContext.RecordRecoverableErrorForChange

Записывает устранимую ошибку, возникшую при попытке применить изменение к элементу.

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

Синтаксис

'Декларация
Public Sub RecordRecoverableErrorForChange ( _
    errorData As RecoverableErrorData _
)
'Применение
Dim instance As RecoverableErrorReportingContext
Dim errorData As RecoverableErrorData

instance.RecordRecoverableErrorForChange(errorData)
public void RecordRecoverableErrorForChange (
    RecoverableErrorData errorData
)
public:
void RecordRecoverableErrorForChange (
    RecoverableErrorData^ errorData
)
public void RecordRecoverableErrorForChange (
    RecoverableErrorData errorData
)
public function RecordRecoverableErrorForChange (
    errorData : RecoverableErrorData
)

Параметры

  • errorData
    Объект RecoverableErrorData, связанный с устранимой ошибкой, к которой относится сообщение.

Исключения

Тип исключения Условие

SimpleProviderInvalidOperationException

Было несколько устранимых шибок, либо была попытка применения изменения к объекту, который больше не является действительным.

Пример

Следующий пример кода показывает реализацию метода DeleteItem, который применяет операции удаления к хранилищу образца данных в памяти. Метод регистрирует устранимую ошибку, если операция удаления не может быть применена. Чтобы просмотреть этот код в контексте полного приложения, см. приложение "Sync101 using Simple Sync Provider", которое можно найти в пакете Sync Framework SDK или на странице Code Gallery.

public override void DeleteItem(ItemFieldDictionary keyAndExpectedVersion, 
    RecoverableErrorReportingContext recoverableErrorReportingContext, 
    out bool commitKnowledgeAfterThisItem)
{
    IDictionary<uint, ItemField> expectedFields = (IDictionary<uint, ItemField>)keyAndExpectedVersion;
    ulong id = (ulong)expectedFields[CUSTOM_FIELD_ID].Value;
    if (_store.Contains(id))
    {
        _store.DeleteItem(id);
    }
    else
    {
        // If the item to delete does not exist, record an error on this change and 
        // continue with the rest of the session.
        recoverableErrorReportingContext.RecordRecoverableErrorForChange(new RecoverableErrorData(new Exception("Item not found in the store")));
    }
    commitKnowledgeAfterThisItem = false;
}
Public Overrides Sub DeleteItem(ByVal keyAndExpectedVersion As ItemFieldDictionary, ByVal recoverableErrorReportingContext As RecoverableErrorReportingContext, ByRef commitKnowledgeAfterThisItem As Boolean)
    Dim expectedFields As IDictionary(Of UInteger, ItemField) = DirectCast(keyAndExpectedVersion, IDictionary(Of UInteger, ItemField))
    Dim id As ULong = CULng(expectedFields(CUSTOM_FIELD_ID).Value)
    If _store.Contains(id) Then
        _store.DeleteItem(id)
    Else
        ' If the item to delete does not exist, record an error on this change and 
        ' continue with the rest of the session. 
        recoverableErrorReportingContext.RecordRecoverableErrorForChange(New RecoverableErrorData(New Exception("Item not found in the store")))
    End If
    commitKnowledgeAfterThisItem = False
End Sub

См. также

Справочник

Класс RecoverableErrorReportingContext
Элементы RecoverableErrorReportingContext
Пространство имен Microsoft.Synchronization.SimpleProviders