Go学习笔记:panic()和recover()
来源:互联网 发布:庄子思想 知乎 编辑:程序博客网 时间:2024/06/03 08:54
如何理解:
1、调用panic函数相当于throw一个异常,逐层启动异常处理流程。在调用panic之前defer的操作会在调用panic后立即执行。
2、调用recover函数相当于catch了异常,会中止异常处理流程,并可以返回这个异常。
3、panic函数接受一个参数,任意类型,无返回值;
4、recover函数没有参数,返回值就是异常本身;
5、一般,recover函数放在defer后面的一个匿名函数中执行。个人认为还应该放在函数的首部;
一个例子
package main
import (
"fmt"
)
func work() {
Log(10)
panic("ERROR!")
Log(100)
}
func Log(args ...interface{}) {
fmt.Println(args...)
}
func main() {
defer func() {
if r := recover(); r != nil {
Log(r)
}
}()
work()
}
0 0
- Go学习笔记:panic()和recover()
- Go语言学习笔记 --- defer 、panic 、recover
- Go语言panic和recover使用
- GO panic和recover的用法
- 【Go学习】GO语言异常处理机制panic和recover分析
- Go-defer,panic,recover
- GO defer panic recover
- go error panic deffer recover
- Go语言中使用panic和recover简化错误处理
- GO语言异常处理机制panic和recover分析
- GO语言异常处理机制panic和recover分析
- Go的异常处理 defer, panic, recover
- Go的异常处理 defer, panic, recover
- Go的异常处理 defer, panic, recover
- Go的异常处理 defer, panic, recover
- Go panic, defer, recover 的异常处理
- Go的异常处理 defer, panic, recover
- 53.笔记go语言——defer,panic,recover使用场景
- Java实现的排序算法及比较 [冒泡,选择,插入,归并,希尔,快排]
- **DTD语法结构总结**
- 文件过滤的一些方式
- Redis缓存
- MITx 6.00 Problem Set 3 hangma
- Go学习笔记:panic()和recover()
- andoid studio生成release版本的apk---app-release.apk
- fcntl使用
- 一致性 hash 算法( consistent hashing )
- Decode Ways
- Metasploit - Custom Payloads
- tomcat下webapp取得本地几个路径的代码片断
- 数据结构--平衡二叉树
- 【网络】协议森林