You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DocumentClientException捕获问题:更新NuGet后该异常变为internal如何处理?

问题解答

原有代码无法直接复用,因为Microsoft.Azure.Documents.DocumentClientException被标记为internal后,外部代码无法捕获该类型异常。

微软确实调整了Cosmos DB SDK的错误处理机制:

  • 这是SDK版本升级(通常是从旧的Microsoft.Azure.DocumentDB包迁移到新的Microsoft.Azure.Cosmos包)带来的变化,新SDK不再对外暴露DocumentClientException,转而使用**CosmosException**作为统一的公开异常类型。
  • 调整的目的是统一异常体系,简化错误处理逻辑,同时隐藏内部实现细节。

替代代码示例

你可以将原有代码修改为捕获CosmosException,核心逻辑保持一致:

...
// Cosmos DB操作代码
...
catch (CosmosException ce)
{
    if ((int)ce.StatusCode != 429)
    {
        throw;
    }

    sleepTime = ce.RetryAfter ?? TimeSpan.FromSeconds(1); // 增加默认值避免空引用
}

额外注意事项

如果是跨大版本升级SDK,除了异常类型,还需要同步检查其他API的兼容性:

  • 原DocumentClient已被CosmosClient替代
  • 部分操作方法的签名、参数也可能有变化,需要对应调整

内容的提问来源于stack exchange,提问作者LosManos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 17:27:06