package main

import (
"fmt"
"log"
) func de() {
//recover() //可以打印panic的错误信息
//fmt.Println(recover())
if err := recover(); err != nil { //产生了panic异常
fmt.Println(err)
}
} func test() {
defer de()
log.Panic("aaaaaaaaaaaaaaaaaaaaa")
log.Panic("bbbbbbbbbbbbbbbbbbbbb")
} func main() {
test()
fmt.Println("-------------- main over -------------------------")
}
2020/08/10 11:13:30 aaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaa
-------------- main over -------------------------

注意 第二次panic没有被执行,第一次程序异常后,就转到了defer方法

recover方法必须放在defer方法中使用,并且只能捕获defer所在外层方法的第一个painc,然后跳出该外层方法,继续程序执行

最新文章

  1. python基础06 循环
  2. 手机刷机软件与ROM的盈利模式分析
  3. App Icon生成工具(转载)
  4. Android屏幕适配原理
  5. 冒泡排序小实例 php
  6. hihocode 第九十二周 数论一·Miller-Rabin质数测试
  7. RedHat7搭建MongoDB集群
  8. BaseAdapter导致notifyDataSetChanged()无效的四个原因及处理方法
  9. Spring入门介绍-IOC(二)
  10. JavaScript的数据结构和算法
  11. SqlCommand.Parameters的使用
  12. 解析CommandMessage
  13. ElasticSearch Java API
  14. C#重点内容之:事件(Event)
  15. 待解决:PDF header signature not found
  16. 20162328蔡文琛 2017week03
  17. Error reading field 'throttle_time_ms': java.nio.BufferUnderflowException
  18. java多态 以及静态绑定 动态绑定积累
  19. linux安装coreseek
  20. poll?transport=longpoll&connection...连接的作用

热门文章

  1. elasticsearch中query_string的隐藏坑
  2. 2020 天翼杯 部分wp
  3. PTA7-2 愿天下有情人都是失散多年的兄妹
  4. [cf1528F]AmShZ Farm
  5. [cf1209E]Rotate Columns
  6. [atARC110F]Esoswap
  7. [luogu6860]象棋与马
  8. [loj3329]有根树
  9. Java8-JVM内存区域划分白话解读
  10. html图片动态增加文字