RecoverableErrorReportingContext.RecordRecoverableErrorForChange Method
Records a recoverable error that occurred when attempting to apply a change to an item.
Namespace: Microsoft.Synchronization.SimpleProviders
Assembly: Microsoft.Synchronization.SimpleProviders (in microsoft.synchronization.simpleproviders.dll)
Syntax
'Declaration
Public Sub RecordRecoverableErrorForChange ( _
errorData As RecoverableErrorData _
)
'Usage
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
)
Parameters
- errorData
The RecoverableErrorData object associated with the recoverable error that is reported.
Exceptions
Exception type | Condition |
---|---|
There were multiple recoverable errors, or a change was attempted on an object that is no longer valid. |
Example
The following code example shows an implementation of the DeleteItem method that applies deletes to an in-memory sample data store. The method records a recoverable error if the delete cannot be applied. To view this code in the context of a complete application, see the "Sync101 using Simple Sync Provider"
application that is available in the Sync Framework SDK and from 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
See Also
Reference
RecoverableErrorReportingContext Class
RecoverableErrorReportingContext Members
Microsoft.Synchronization.SimpleProviders Namespace