yufenghui / geekbang-lessons-golang

极客时间 GO进阶训练营

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

极客时间-GO进阶训练营

第二周作业

作业

我们在数据库操作的时候,比如 dao 层中当遇到一个 sql.ErrNoRows 的时候,是否应该 Wrap 这个 error,抛给上层。为什么,应该怎么做请写出代码?

思路

  • 除了ErrNoRows外,QueryRow 还会返回几类错误类型,包括 errors.Newfmt.Errorf等自定义error。
  • ErrNoRows语义很明显,没有找到想要查询的记录。无需再包装,直接返回即可。
  • 其他类型的错误可以统一错误信息,表示操作数据库发生了错误。
  • 真正处理业务错误,不是在dao层,而是在更上层。

About

极客时间 GO进阶训练营


Languages

Language:Go 100.0%