defer 中recovery from panic中的注意点

实际代码中为了方便,写了如下的代码:

func Recover(ctx context.Context) {
    if e := recover(); e != nil {
       Log.Errorf(ctx, "[PANIC]e: %v\n stack:%v\n", e, GetStack())
    }
}

在一般使用过程中,可以如下使用:

func test1(ctx context.context){

defer Recover(ctx)

// logic

}

但是实际使用过程中,产生了一种错误使用:

func test1(ctx context.context){

defer func(){

Recover(ctx)

}()

// logic

}

如果在defer 方法中再调用recovery包装方法,则是无法恢复panic现场的。这点需要注意

相关推荐

  1. defer recovery from panic注意

    2024-03-19 23:28:04       18 阅读
  2. 理解Go语言defer

    2024-03-19 23:28:04       37 阅读
  3. 【Go】探索Go语言关于defer应用

    2024-03-19 23:28:04       21 阅读
  4. static成员注意

    2024-03-19 23:28:04       12 阅读
  5. 在目标检测图框标注注意一下几

    2024-03-19 23:28:04       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-19 23:28:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-19 23:28:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-19 23:28:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-19 23:28:04       18 阅读

热门阅读

  1. LeetCode112 路径总和

    2024-03-19 23:28:04       16 阅读
  2. 【DRAM存储器二十四】DDR4介绍-DDR4 MR0-3详解

    2024-03-19 23:28:04       20 阅读
  3. 三国游戏.

    2024-03-19 23:28:04       18 阅读
  4. 全屏时框架的message alert 下拉框失效问题

    2024-03-19 23:28:04       17 阅读
  5. Linux 常用运维使用指令

    2024-03-19 23:28:04       20 阅读
  6. pytorch升级打怪(五)

    2024-03-19 23:28:04       18 阅读
  7. C++学习之旅(一)- 序言

    2024-03-19 23:28:04       18 阅读
  8. android 网络检测简单方法

    2024-03-19 23:28:04       19 阅读
  9. 【C语言】数组基础

    2024-03-19 23:28:04       19 阅读