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

如何从Azure Go SDK的报错中提取对应的HTTP状态码?

Azure SDK for Go 提取错误HTTP状态码的方案

Azure Go SDK 官方提供了标准的错误封装类型,你可以直接通过类型断言提取状态码,分两种SDK版本场景处理:

针对Track 2 版本SDK(当前官方推荐版本,包路径前缀为 github.com/Azure/azure-sdk-for-go/sdk/)

引入azcore包的ResponseError类型即可直接提取:

import (
    "errors"
    "github.com/Azure/azure-sdk-for-go/sdk/azcore"
)

// 处理Get接口404重试逻辑
var respErr *azcore.ResponseError
if errors.As(err1, &respErr) {
    if respErr.StatusCode == 404 {
        // 此处写你的404重试逻辑
    }
}

// 处理CreateOrUpdate接口409重试逻辑
if errors.As(err2, &respErr) {
    if respErr.StatusCode == 409 {
        // 此处写你的409重试逻辑
    }
}

额外说明:*azcore.ResponseError 还携带了ErrorCode字段,对应Azure服务返回的业务错误码,粒度比HTTP状态码更细,需要精准判断错误场景时可以配合使用。

针对Track 1 版本SDK(旧版本,包路径依赖github.com/Azure/go-autorest)

可以直接用autorest提供的工具方法提取状态码:

import "github.com/Azure/go-autorest/autorest"

// 提取状态码示例
code := autorest.ResponseErrorStatusCode(err1)
if code == 404 {
    // 重试逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:45:07