ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
> 下面介绍GORM关于错误的处理方式 [TOC] ## 错误处理 > 如果在执行SQL查询的时候,出现错误,GORM 会将错误信息保存到 *gorm.DB 的Error字段,我们只要检测Error字段就可以知道是否存在错误。 ~~~ if err := db.Where("name = ?", "tizi365").First(&user).Error; err != nil { // 错误处理 } ~~~ **或者** ~~~ if result := db.Where("name = ?", "jinzhu").First(&user); result.Error != nil { // 错误处理 } ~~~ ## 处理多个错误 ~~~ // 通过GetErrors获取错误列表 errors := db.First(&user).Limit(10).Find(&users).GetErrors() fmt.Println(len(errors)) // 打印错误数量 // 遍历错误内容 for _, err := range errors { fmt.Println(err) } ~~~ ## RecordNotFound error > 如果查询不到数据,GORM会产生一个RecordNotFound错误,我们可以通过检测这个错误识别是否找到数据 ~~~ // 方式1 // 检测是否找到数据 db.Where("name = ?", "hello world").First(&user).RecordNotFound() // 方式2 if db.Model(&user).Related(&credit_card).RecordNotFound() { // 数据不存在 } if err := db.Where("name = ?", "tizi365").First(&user).Error if gorm.IsRecordNotFoundError(err) { // 数据不存在 } ~~~