go 的 panic 实现原理

2022-08-31  本文已影响0人  wayyyy

Go 语言开发的程序遇到错误,比较常见的做法是返回 error 给调用者,但对于危险的操作,比如内存越界,则会显示触发panic
同样是退出程序,与 os.Exist 相比,panic 退出的方式比较优雅,panic 会做一定的善后动作,比如处理 defer函数以及支持使用 recover 消除 panic

工作流程:

image.png

在panic 执行过程中有几个要点注意:

panic 实际实现是/src/runtime/panic.go:gopanic

数据结构

TODO

没有defer 函数

TODO

defer 函数处理

TODO

嵌套panic

TODO

上一篇 下一篇

猜你喜欢

热点阅读