go recover让崩溃的程序继续执行
2024-09-03 05:54:36
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,然后跳出该外层方法,继续程序执行
最新文章
- python基础06 循环
- 手机刷机软件与ROM的盈利模式分析
- App Icon生成工具(转载)
- Android屏幕适配原理
- 冒泡排序小实例 php
- hihocode 第九十二周 数论一·Miller-Rabin质数测试
- RedHat7搭建MongoDB集群
- BaseAdapter导致notifyDataSetChanged()无效的四个原因及处理方法
- Spring入门介绍-IOC(二)
- JavaScript的数据结构和算法
- SqlCommand.Parameters的使用
- 解析CommandMessage
- ElasticSearch Java API
- C#重点内容之:事件(Event)
- 待解决:PDF header signature not found
- 20162328蔡文琛 2017week03
- Error reading field 'throttle_time_ms': java.nio.BufferUnderflowException
- java多态 以及静态绑定 动态绑定积累
- linux安装coreseek
- poll?transport=longpoll&;connection...连接的作用