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

Ily*_*dik 5 c# http http-status-codes azure azure-table-storage

我对 Azure 表存储运行一个简单的命令:

var operation = TableOperation.InsertOrReplace(entity);
await cloudTable.ExecuteAsync(operation);
Run Code Online (Sandbox Code Playgroud)

现在 ExecuteAsync 返回的结果不仅仅是Task,而是Task<TableResult>TableResult包含HttpStatusCode. 这是否意味着该操作可以直接执行而不会引发任何异常,并且状态代码将为 500 或其他内容,而我需要自己验证这些内容?或者我只会得到成功代码和异常。

我找不到任何关于该文件的文档,并且很难从表存储中引发错误来弄清楚它是如何工作的。

PS我Microsoft.WindowsAzure.Storage.Table现在使用,但计划切换到新开发的Cosmos for .Net Core库,但它仍然是测试版。

PPS 已经发现它用于例如未找到元素时的 404,这实际上是预期的而不是例外。另外,错误的键也会导致异常,可能是 403 或 401 的结果。目前还不清楚失败是否会导致异常,但所有都指向将抛出异常的方向。

Tho*_*mas 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

也就是说,仔细检查并没有什么坏处。