gpt4 book ai didi

go - 404响应后继续循环

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

这可能是一个菜鸟问题,但我已经用谷歌搜索了一段时间。

我在一个 for 循环中运行,每个循环都有不同的 api 请求

jiraClient, err := jira.NewClient(nil, *jiraURL)

if err != nil {
panic(err)
}

jiraClient.Authentication.SetBasicAuth(*jiraUser, string(jiraPass))

reader := csv.NewReader(*file)
CSVData, err := reader.ReadAll()

if err != nil {
fmt.Println(err)
os.Exit(1)
}

lineCount := 1

for _, line := range data {

//reading CSV

//this returns 200 for all users found but 404 for not found
user, resp, _ := jiraClient.User.Get(user)

if resp.StatusCode == 200 {
fmt.Printf("Changed %s to %s\n", user.Name, data.user)
} else {
// have tried continue, return
}
}

每次遇到 404 响应时,程序都会失败并退出

我已经试过了,但没有成功。

我怎样才能让它继续?

最佳答案

这个问题泄露了细节,因为它赢得了太多的反对票。我假设我们正在处理一个 Get method of UserService in go-jira.

Get 方法返回错误:

func (s *UserService) Get(username string) (*User, *Response, error)

您正在省略错误检查并将其拉至空白标识符。请注意,如果错误返回非零值,则 *Usernil

resp, err := s.client.Do(req, user)
if err != nil {
return nil, resp, err
}

即使我错误地假设您正在使用的库也是处理这种情况的 Go 方式。正确的方法是检查错误值并执行您需要的操作,但不要等到您的程序面临 nil 指针取消引用。

  user, resp, err := jiraClient.User.Get()
if err != nil {
// Do something clever...
}

错误是值(value)

此外,error 是一个接口(interface)。所以错误可能包含一些有用的数据或者是一个具体类型的对象。

An error variable represents any value that can describe itself as a string. Here is the interface's declaration:

type error interface {
Error() string
}

关于go - 404响应后继续循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46842726/

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