gpt4 book ai didi

go - 如何通过结构字段名称获取 Gmail API 错误代码?

转载 作者:数据小太阳 更新时间:2023-10-29 03:41:57 25 4
gpt4 key购买 nike

Gmail API 错误响应结构包含一个代码字段,符合 Examiner

_, err := gmailService.Users.Messages.Send("me", &gMsg).Do()
t := reflect.TypeOf(err)
examiner(t,0)

回应

Type is  and kind is ptr
Contained type:
Type is Error and kind is struct
Field 1 name is Code type is int and kind is int
...

我可以使用字段索引成功获取错误代码,但这更晦涩(因此更难维护)并且感觉更脆弱:

errReflectElem := reflect.ValueOf(err).Elem() 
fmt.Printf("err.Code %v\n",errReflectElem.Field(0).Interface())

根据this sample看来我应该也能得到错误码如下:

fmt.Println("Code: %v",err.Code)

但是这会导致构建错误:

err.Code undefined (type error has no field or method Code)

我错过了什么?

最佳答案

根据documentation它返回一个 *googleapi.Error。只需声明此类型,您就可以完全访问它包含的所有内容。这是接口(interface)的强大功能和通过导出类型进行正确错误处理的主要示例。如果导出此类错误类型,则无需反射即可访问它。

if gapiErr, ok := err.(*googleapi.Error); ok {
// use gapiErr.WhateverField
}

关于go - 如何通过结构字段名称获取 Gmail API 错误代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53660549/

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