Go 404响应后继续循环
这也许是个问题,但我已经在谷歌上搜索了一段时间 我在for循环中运行,每个循环都有一个不同的api请求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 :
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
}