我对 Azure 表存储运行一个简单的命令:
var operation = TableOperation.InsertOrReplace(entity);
await cloudTable.ExecuteAsync(operation);
现在 ExecuteAsync 返回的结果不仅仅是
Task
,而是 Task<TableResult>
。 TableResult
包含 HttpStatusCode
。这是否意味着该操作可以直接执行而不会引发任何异常,并且状态代码将为 500 或其他内容,而我需要自己验证这些内容?或者我只会得到成功代码和异常,否则。
我找不到任何关于该文档的文档,并且不容易从表存储中引发错误来弄清楚它是如何工作的。
附注我现在使用
Microsoft.WindowsAzure.Storage.Table
,但计划切换到新开发的 Cosmos for .Net Core 库,但它仍处于测试阶段。
P.P.S。已经发现它的用途例如对于 404,当未找到元素时,这实际上是预期的,而不是异常。另外,错误的键会导致异常,可能是 403 或 401 的结果。仍然不清楚失败是否会导致异常,但所有都指向将抛出异常的方向。
最好使用 Azure.Data.Tables 包,这是用于使用 Azure 表存储的最新且推荐的 nuget 包。 https://www.nuget.org/packages/Azure.Data.Tables/
如果请求失败,所有 Azure SDK 应该抛出异常:
当服务方法失败且状态代码不成功时,请抛出 RequestFailedException 或其子类型。
https://azure.github.io/azure-sdk/dotnet_introduction.html#dotnet-errors
也就是说,仔细检查一下也没什么坏处。