Golang - AppEngine数据存储GetMulti()在返回MultiError时是否返回无效数据?

时间:2014-09-07 01:29:52

标签: google-app-engine go error-handling google-cloud-datastore

我正在调用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,则返回的数据是否包含与多错误中的错误匹配的键的错误,空或损坏的数据条目。它现在按预期工作,但我不知道可能会出现什么样的异常情况,或者这是否因某些惯用原因而可怕。

1 个答案:

答案 0 :(得分:2)

https://developers.google.com/appengine/docs/go/reference#MultiError开始:

  

当特定元素出现错误时,批处理操作会返回MultiError。

     

错误将与输入元素一一对应;成功的元素将有一个零条目。

它永远不会有数据,每个i, err_entry都是nil或与data[i]相关联的错误。