Error应该是指一些底层的错误,查询未找到row(但执行还是成功的)不应该定义为error
这是它的文档:
Error Handling
After perform any operations, if there are any error happened, GORM will set it to *DB's Error field
if err := db.Where("name = ?", "jinzhu").First(&user).Error; err != nil {
// error handling...
}
// If there are more than one error happened, get all of them with `GetErrors`, it returns `[]error`
db.First(&user).Limit(10).Find(&users).GetErrors()
// Check if returns RecordNotFound error
db.Where("name = ?", "hello world").First(&user).RecordNotFound()
if db.Model(&user).Related(&credit_card).RecordNotFound() {
// no credit card found handling
}
其实没有什么对错的,你可以对这个err做多一步的处理,比如
可以这样处理,当找不到user的时候,报什么错,当数据库错误的时候报什么错,都可以自己定义,这样岂不是很好吗
其实这也是golang的一种惯用方法