• 欢迎来到本博客,希望可以y一起学习与分享

go 统一处理系统异常panic()

笔记 benz 2周前 (09-03) 7次浏览 0个评论 扫描二维码
文章目录[隐藏]

前言

什么是异常?

在 Go 中异常就是 panic,它是在程序运行的时候抛出的,当 panic 抛出之后,如果在程序里没有添加任何保护措施的话,控制台就会在打印出 panic 的详细情况,然后终止运行。

我们可以将 panic 分为两种:

一种是有意抛出的,比如,

一种是无意抛出的,写程序马虎造成,比如,

想象一下,如果在线上环境出现了 panic,命令行输出的,因为咱们无法捕获就无法定位问题呀,想想都可怕,那么问题来了,怎么捕获异常?

怎么捕获异常

当程序发生 panic 后,在 defer(延迟函数) 内部可以调用 recover 进行捕获。

不多说,直接上代码:

在运行一下 “无意抛出的 panic ”,输出:

runtime error: index out of range
OK,错误捕获到了,这时我们可以进行做文章了。

做啥文章,大家应该都知道了吧:

  • 获取运行时的调用栈(debug.Stack())
  • 获取当时的 Request 数据
  • 组装数据,进行发邮件

Gin捕获异常中间件 + 发邮件

定义邮件模板

中间件


文章 go 统一处理系统异常panic() 转载需要注明出处
喜欢 (0)

您必须 登录 才能发表评论!