区分子网操作错误与特定路径上的缺失数据

时间:2018-03-06 10:58:58

标签: go couchbase gocb

我已获得此代码

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)
}

1 个答案:

答案 0 :(得分:0)

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