我正在调用AppEngine数据存储区来获取可能存储或未存储的数据;除了所有多错误条目都返回错误外,我不关心多重错误。
err := datastore.GetMulti(context, keys, data)
if err_entries, ok := err.(appengine.MultiError); ok {
for _, err_entry := range err_entries {
if err_entry == nil {
return data, nil
}
}
}
return data, err
我的问题是,如果多错误的一个err_entry为nil,则返回的数据是否包含与多错误中的错误匹配的键的错误,空或损坏的数据条目。它现在按预期工作,但我不知道可能会出现什么样的异常情况,或者这是否因某些惯用原因而可怕。
答案 0 :(得分:2)
从https://developers.google.com/appengine/docs/go/reference#MultiError开始:
当特定元素出现错误时,批处理操作会返回MultiError。
错误将与输入元素一一对应;成功的元素将有一个零条目。
它永远不会有数据,每个i, err_entry
都是nil或与data[i]
相关联的错误。