- 我们在数据库操作的时候,比如 dao 层中当遇到一个 sql.ErrNoRows 的时候,是否应该 Wrap 这个 error,抛给上层。为什么,应该怎么做请写出代码?
sql.ErrNoRows
是一个 sentinel error。
如果不Wrap这个Error,那么这个Error就直接被暴露到了上层。
比如dao层之后换了数据库实现,可能会抛出另一种Error,那么上层调用dao的地方就都需要改动了。
- 使用
pkg/errors
errors.Wrap(err, "not found")