Go: 返回false还是返回一个定制error ErrValueNotFound?
最后更新于
最后更新于
从map里面取一个值,值不存在,它会返回一个false,而不是一个定制的error ErrValueNotFound。
根据Go里面对error的定义是:error是用于异常情况的。我一开始的想法是:数据找不到,怎么会成为一种异常情况?
但是就在这篇文章里面,有一个例子,调用了Get函数,它没有返回bool,而是返回error,见:[高亮链接]()
官方都这么写了,我还是觉得返回一个定制化的error很难受
在调用gorm的时候,如果遇到ErrRecordNotFound这种错误,你会把它和其他error分开处理,你会经常写
在调用gorm的时候,遇到了它返回gorm.ErrRecordNotFound,我会返回一个bool,然后设置err为nil
后面写多了我发现,有些场景下,记录没找到的确能算作异常情况,比如你是用session,在缓存里没找到,就是异常。这个时候你再加个bool就没有必要了