Azure 移动服务中的同步冲突处理:即席与同步处理程序
本文关键字:处理 同步 程序 冲突 移动 服务 Azure | 更新日期: 2023-09-27 17:57:05
不使用"同步处理程序"时,需要捕获推送和拉取的同步错误。
推:
样本说要捕捉MobileServiceInvalidOperationException
、MobileServicePushFailedException
和Exception
:
try {
await client.SyncContext.PushAsync();
}
catch (MobileServiceInvalidOperationException ex) {
// ...push failed
// ...do manual conflict resolution
}
catch (MobileServicePushFailedException ex) {
// ...push failed
// ...do manual conflict resolution
}
catch (Exception ex) {
// ...some other failure
}
拉:
样品说要抓MobileServiceInvalidOperationException
和Exception
:
try {
await syncTable.PullAsync("allitems", syncTable.CreateQuery());
}
catch (MobileServiceInvalidOperationException ex) {
// ...pull failed
}
catch (Exception ex) {
// ...some other failure
}
同步处理程序:
错误以 .ExecuteTableOperationAsync()
处理。样品说要抓 MobileServiceConflictException
,MobileServicePreconditionFailedException
和Exception
。
最后是一个问题:
我希望我涵盖了上面所有可能的异常类型。
如果我使用同步处理程序,这是否意味着我不需要尝试捕获推送/拉取/清除/等操作?我看到的示例有点令人困惑,因为它们包含同一项目中的所有内容(临时分辨率和同步处理程序)......
您应该始终将推/拉/等操作放在 try/catch 块中。 始终存在发生您没有想到的异常(例如,包括网络消失)的风险。