2 回答
TA贡献1808条经验 获得超4个赞
appengine.MultiError
在这种情况下,GetMulti 可以返回 a 。循环遍历并查找datastore.ErrNoSuchEntity
. 例如:
if err := datastore.GetMulti(c, keys, dst); err != nil {
if me, ok := err.(appengine.MultiError); ok {
for i, merr := range me {
if merr == datastore.ErrNoSuchEntity {
// keys[i] is missing
}
}
} else {
return err
}
}
TA贡献1803条经验 获得超6个赞
我知道这个话题已经有好几天了,但我喜欢发布一个替代方案,使用类型 switch。
if err := datastore.GetMulti(c, keys, dst); err != nil {
switch errt := err.(type) {
case appengine.MultiError:
for ix, e := range errt {
if e == datastore.ErrNoSuchEntity {
// keys[ix] not found
} else if e != nil {
// keys[ix] have error "e"
}
}
default:
// datastore returned an error that is not a multi-error
}
}
- 2 回答
- 0 关注
- 177 浏览
添加回答
举报