极客时间-GO进阶训练营
第二周作业
作业
我们在数据库操作的时候,比如 dao 层中当遇到一个 sql.ErrNoRows 的时候,是否应该 Wrap 这个 error,抛给上层。为什么,应该怎么做请写出代码?
思路
- 除了
ErrNoRows
外,QueryRow
还会返回几类错误类型,包括errors.New
,fmt.Errorf
等自定义error。 ErrNoRows
语义很明显,没有找到想要查询的记录。无需再包装,直接返回即可。- 其他类型的错误可以统一错误信息,表示操作数据库发生了错误。
- 真正处理业务错误,不是在
dao
层,而是在更上层。