go 忽略当前错误时,需要将err置为nil ,再进行continue

//任务列表
func (jobMgr *JobMgr)JobList()(jobList []*common.Job, err error)  {

	var(
		resp *clientv3.GetResponse
		job *common.Job

	)

	//获取目录中所有的key
	if resp, err = G_jobMgr.Kv.Get(context.TODO(), common.JOB_SAVE_DIR, clientv3.WithPrefix()); err != nil{
		fmt.Println(err)
		return
	}

	//fmt.Println(resp.Kvs)
	// 初始化数组空间
	//jobList = make([]*common.Job, 0)

	for _, v := range resp.Kvs{
		//fmt.Println("kvs","----", string(v.Value))
		if err = json.Unmarshal(v.Value, &job); err != nil{
			err = nil
			fmt.Println("json.Unmarshal(v.Value, &job)", err)
			continue  //TODO:continue只是将当前解析错误的结构体job忽略了,但err并不为nil,所以会导致接受变量收到这个错误,所以需要将err置为nil
		}

		fmt.Println(job)
		jobList = append(jobList, job)
	}
	//fmt.Println("jobList", jobList)
	return
}复制代码


转载于:https://juejin.im/post/5d01c234f265da1b6b1cd011

你可能感兴趣的:(go 忽略当前错误时,需要将err置为nil ,再进行continue)