1

我有这个代码

frag, err := bucket.LookupIn(req.Key).Get(req.Path).Execute()
if err != nil {
    res.Code = 1
    res.What = err.Error()
} else {
    frag.Content(req.Path, &res.Data)
}

如果我尝试请求文档中不存在的某些路径,我会收到错误消息"could not execute one or more multi lookups or mutations",这似乎也发生在某些不同的情况下。如何将路径上的缺失数据与所有其他类型的子文档错误区分开来?我想要这样的东西:

frag, err := bucket.LookupIn(req.Key).Get(req.Path).Execute()
if err != nil {
    if <no data> {
        res.Code = 2
        res.What = "No data on specified path"
    } else {
        res.Code = 1
        res.What = err.Error()
    }
} else {
    frag.Content(req.Path, &res.Data)
}
4

1 回答 1

0

您应该能够将返回的错误值与您可以在此处找到的已知错误类型列表进行比较: https ://godoc.org/github.com/couchbase/gocb#pkg-variables

于 2018-03-09T21:02:15.203 回答