学习笔记,写到哪是哪。

接着上一篇文章:Go语学习笔记 - gorm使用 - 原生sql、命名参数、Rows、ToSQL | Web框架Gin(九)_的博客-CSDN博客

目前gorm对数据库的一些操作基本了解。

本篇主要测试一下gorm的异常处理方式。

项目地址:github地址

可以先看看gorm定义的异常,代码如下:

var (// ErrRecordNotFound record not found errorErrRecordNotFound = logger.ErrRecordNotFound// ErrInvalidTransaction invalid transaction when you are trying to `Commit` or `Rollback`ErrInvalidTransaction = errors.New("invalid transaction")// ErrNotImplemented not implementedErrNotImplemented = errors.New("not implemented")// ErrMissingWhereClause missing where clauseErrMissingWhereClause = errors.New("WHERE conditions required")// ErrUnsupportedRelation unsupported relationsErrUnsupportedRelation = errors.New("unsupported relations")// ErrPrimaryKeyRequired primary keys requiredErrPrimaryKeyRequired = errors.New("primary key required")// ErrModelValueRequired model value requiredErrModelValueRequired = errors.New("model value required")// ErrInvalidData unsupported dataErrInvalidData = errors.New("unsupported data")// ErrUnsupportedDriver unsupported driverErrUnsupportedDriver = errors.New("unsupported driver")// ErrRegistered registeredErrRegistered = errors.New("registered")// ErrInvalidField invalid fieldErrInvalidField = errors.New("invalid field")// ErrEmptySlice empty slice foundErrEmptySlice = errors.New("empty slice found")// ErrDryRunModeUnsupported dry run mode unsupportedErrDryRunModeUnsupported = errors.New("dry run mode unsupported")// ErrInvalidDB invalid dbErrInvalidDB = errors.New("invalid db")// ErrInvalidValue invalid valueErrInvalidValue = errors.New("invalid value, should be pointer to struct or slice")// ErrInvalidValueOfLength invalid values do not match lengthErrInvalidValueOfLength = errors.New("invalid association values, length doesn't match")// ErrPreloadNotAllowed preload is not allowed when count is usedErrPreloadNotAllowed = errors.New("preload is not allowed when count is used")
)

编写一个接口来测试一下异常。

在student_service下新增TestError方法。

方法代码如下:

//测试gorm异常
func (t StudentImpl) TestError() rsp.ResponseMsg {log.Logger.Info("测试gorm异常")_db := mysql.GetDB()var _student db_entity.Studentif _err := _db.Where("del_flag = 1").First(&_student).Error; _err != nil {if errors.Is(_err, gorm.ErrRecordNotFound) {fmt.Println("error is ErrRecordNotFound")}log.Logger.Panic("error -> ", log.Any("error", _err))}log.Logger.Debug("student -> ", log.Any("student", _student))return *rsp.SuccessMsg("测试成功")
}

如果sql无法获取到record,会报出ErrRecordNotFound异常。

controller层增加接口代码,如下:

//测试gorm异常
func (s StudentController) TestError(context *gin.Context) {log.Logger.Info("测试gorm异常接口")_rsp := services.StudentServ.TestError()context.JSON(http.StatusOK, _rsp)
}

验证一下接口执行后的打印输出。

可以看到是全局捕获的异常响应报文。

小结

在项目开发中,异常处理是比较必要的。

最近有点忙,也有所体悟,有时候需要把压力释放一下,但是需要合理有效的方式。有时候需要把压力往身边分担下,并不是什么时候都需要扛下所有。

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

Go语学习笔记 - gorm使用 - gorm处理错误 Web框架Gin(十)相关推荐

  1. 『Python学习笔记』Python中的异步Web框架之fastAPI介绍RestAPI

    Python中的异步Web框架之fastAPI介绍&RestAPI 文章目录 一. fastAPI简要介绍 1.1. 安装 1.2. 创建 1.3. get方法 1.4. post方法 1.5 ...

  2. x%3e=y%3e=z的c语言表达式,我的C语学习笔记-C语言教程(三).doc

    我的C语学习笔记- C语言教程(三) C语言教程---第一章: C语言概论 C语言教程---第二章: 数据类型.运算符.表达式 C语言教程---第三章: C语言程序设计初步 C语言教程---第四章: ...

  3. c语言第七章函数笔记,我的C语学习笔记-C语言教程(七).doc

    我的C语学习笔记- C语言教程(七) C语言教程---第一章: C语言概论 C语言教程---第二章: 数据类型.运算符.表达式 C语言教程---第三章: C语言程序设计初步 C语言教程---第四章: ...

  4. Go语学习笔记 - websocket gorilla(附测试代码) | 从零开始Go语言

    目录 项目结构 消息结构 服务端代码 定义客户端行为 服务启动 测试代码 总结 学习笔记,写到哪是哪. websocket也是常用的协议了,在上一篇中主要测试使用了一下grpc. 下面我会把代码贴出来 ...

  5. Go语学习笔记 - 增加时间工具 | Web框架Gin(五)

    学习笔记,写到哪是哪. 接着上一篇的文章:Go语学习笔记 - 跨域配置.全局异常捕获 | Web框架Gin(四)_剑客阿良_ALiang的博客-CSDN博客_gin全局异常捕获 在上一篇中已经将一些基 ...

  6. php txtsql 说明,PHP学习笔记(2)txtSQL文档错误

    PHP学习笔记(2)txtSQL文档错误 次阅读 在使用txtSQL的过程中,发现一处帮助文档错误. 在使用altertable命令改变表名称时,发现如果按照帮助文档所说,使用如下代码无法改变表的名称 ...

  7. 【Javaweb学习笔记】在Eclipse中创建Web项目

    [Javaweb学习笔记]在Eclipse中创建Web项目 哈喽大家好,这里是Java框架学习笔记专栏第二期 本期内容--在Eclipse中创建Web项目 前期回顾: 第一期--schema约束 笔者 ...

  8. LiteOS学习笔记-4通信模组之AT框架

    LiteOS学习笔记-4通信模组之AT框架 一.AT客户端简介 什么是AT客户端 AT客户端框架作用 二.串口驱动框架实现 2.1串口初始化 2.2读写缓冲区ring_buffer 2.3读写实现与注 ...

  9. Go语学习笔记 - goroutine | 从零开始Go语言

    学习笔记,写到哪是哪. 关于golang的协程早有耳闻,具体概念不过多赘述了,可以理解为轻量级的线程,一个线程中可以存在多个协程.协程在同一个线程中,只有一个协程在运行.协程调度切换时,将寄存器上下文 ...

最新文章

  1. 有哪些时间管理的习惯?
  2. 内存分配算法 之 首次适应-最佳适应
  3. 电脑技巧:键盘上的这几个键,不常用,但有必要了解一下!
  4. Nginx 设置,设置已经解析的域名,在nginx中没有定义相应server时的默认访问
  5. Springboot(2.0.0.RELEASE)+spark(2.1.0)框架整合到jar包成功发布(原创)!!!
  6. Java之strictfp关键字
  7. Angular2开发拙见——组件规划篇
  8. 新编c语言程序设计案例教程 pdf下载,新编C语言程序设计教程本科第章.pdf
  9. MXNet之CNN:自定义CNN-OCR算法训练车牌数据集(umpy.ndarray格式数据)实现车牌照片字符识别并评估模型
  10. 信息系统监理学习笔记(2)
  11. 解决Access denied for user ''@'localhost' to database 'mysql'问题
  12. word上怎么把图片拼接到一起_word怎么将图片合并
  13. mysql及格率公式_关于mysql进行名次的排名和计算及格率的分享
  14. 【整理+总结】pink老师前端三件套之HTML笔记(二)HTML标签
  15. SAP权限管理的基本概念
  16. 软件需求工程 高校教学平台 软件需求规格说明书 part 1 (重点!!!)
  17. 无法连接到internet 小黄叹号长时间不消失的问题
  18. APK安装失败:[INSTALL_FAILED_VERIFICATION_FAILURE]
  19. C/C++ 假币问题
  20. php如何设置伪静制,如何设置伪静态?

热门文章

  1. 视频帧凸包检测 结果存入数据库
  2. 浙大图灵班今年首次招生:院士授课,本科生配学业导师
  3. Spring Security | 轻松搞定认证授权~
  4. SpringBoot 轻松搞定数据验证 (三)
  5. 程序员路在何方的辛苦工作
  6. 极客星球 | 图像技术在上亿规模实拍图片中的应用
  7. 遍历同辈节电的方法_家庭节水节电的24个好方法
  8. android和夜神模拟器哪个好,蓝叠和夜神哪个好用?夜神模拟器和蓝叠安卓模拟器区别对比...
  9. 我们为什么来到这个世界上?--黄金雄(杰西)
  10. 基于双月数据集单层感知机_python