Go 404响应后继续循环

Go 404响应后继续循环,go,Go,这也许是个问题,但我已经在谷歌上搜索了一段时间 我在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 :

这也许是个问题,但我已经在谷歌上搜索了一段时间

我在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
方法返回错误:

func (s *UserService) Get(username string) (*User, *Response, error)
您忽略了错误检查并将其拉到一个空白标识符。请注意,如果返回的错误值为非nil,则
*用户
nil

resp, err := s.client.Do(req, user)
if err != nil {
    return nil, resp, err
}
即使我错误地假设了一个你正在使用的lib,它也是一种处理这种情况的方法。正确的方法是检查错误值并执行所需操作,但不要等到程序面临零指针解引用

  user, resp, err := jiraClient.User.Get()
  if err != nil {
      // Do something clever...
  }
错误是值 此外,
error
是一个接口。所以错误可能包含一些有用的数据,或者是一个具体类型的对象

错误变量表示可以将自身描述为字符串的任何值。以下是接口的声明:


围棋没有捷径。你是怎么打电话的?404不是Get.ok返回的错误。我找到的那件一定是定制的。。我已经编辑了命令,请展示一个完整的例子。目前没有循环。另外,jiraClient是什么类型的?您忽略的返回值是什么?可能是您可以检查并适当处理的错误。请求失败。请分析请求正文以了解更多详细信息。状态代码:404您需要显示完整的代码。您的问题没有显示循环,也没有显示如何处理(或忽略)返回的错误值。感谢您提供的信息。。你说得对,本来可以更详细一点的。我认为问题是直截了当的,如果响应是404,那么不要退出,转到for循环中的下一个
type error interface {
    Error() string
}