gpt4 book ai didi

azure-cosmosdb - GetItemQueryIterator() 在 Cosmos DB 中找不到匹配文档时出现异常

转载 作者:行者123 更新时间:2023-12-04 08:19:02 24 4
gpt4 key购买 nike

因此,我尝试使用以下代码行查询 cosmos 集合中的特定文档:

FeedIterator<dynamic> querieditem = container.GetItemQueryIterator<dynamic>(mysqlquery);

当数据库中存在一个项目时,这没有任何问题。但是,当数据库中不存在任何匹配项时,会出现以下异常:

System.Private.CoreLib: Exception while executing function: TestFunction. Microsoft.Azure.Cosmos.Client: Response status code does not indicate success: NotFound (404); Substatus: 0; ActivityId:123123; Reason: (Message: {"Errors":["Resource Not Found. Learn more: https://aka.ms/cosmosdb-tsg-not-found"]}

这真的意味着我需要添加一个 try/catch,以防 GetItemQueryIterator() 在 Cosmos 中找不到任何东西吗?鉴于这是必要的,为什么这样做有意义?

最佳答案

SDK 中的一些方法在 404 上抛出异常作为遗留保留。更好的选择是使用这些方法的 Stream 变体,它不会抛出并使用可用于评估成功的 HTTP 状态代码。您只需要一个额外的步骤来自行反序列化响应流。

请参阅 GetItemQueryStreamIterator 的文档和示例

关于azure-cosmosdb - GetItemQueryIterator() 在 Cosmos DB 中找不到匹配文档时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65584386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com