2019-go-21

panic 被引用到程序终止运行的大致过程是什么

某个函数中的某行代码有意或无意地引发了一个panic

这时 panic详情会被建立起来

程序的控制权立即从此行代码转移至调用其所属函数的那一行代码上 也就是调用栈的上一级

此行所属函数的执行随即终止 控制权不会有片刻的停留立即转移至再上一级

控制权一级一级沿着调用栈的反方向传播至顶端 也就是编写的最外层函数那里

对于goroutine 来说 就是main函数 但是控制权也不会停留 而是被go语言运行时系统收回

程序崩溃并终止运行 承载程序这次运行的进程也会随之死亡并消失 在控制权传播的过程中 panic详情会被逐渐地积累和完善 并会在程序终止之前被打印出来