在 CloudTable 上执行 ExecuteAsync 后是否应该检查 TableResult 是否有错误代码?

问题描述 投票:0回答:1

我对 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 的结果。仍然不清楚失败是否会导致异常,但所有都指向将抛出异常的方向。

c# azure http azure-table-storage http-status-codes
1个回答
0
投票

最好使用 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

也就是说,仔细检查一下也没什么坏处。

© www.soinside.com 2019 - 2024. All rights reserved.