Go Panic

2024 年 8 月 29 日 | 阅读 2 分钟

Go panic 是一种处理错误情况的机制。 Panic 可用于中止函数执行。当一个函数调用 panic 时,它的执行停止,控制流转向相关的 deferred 函数。

此函数的调用者也会被终止,并且调用者的 deferred 函数会被执行(如果存在)。这个过程一直持续到程序终止。 现在报告错误情况。

这种终止序列称为 panicking,可以通过内置函数 recover 来控制。

Go Panic 示例 1

输出

panic: Error Situation

goroutine 1 [running]:
main.main()
/Users/pro/GoglandProjects/Panic/panic example1.go:6 +0x39

Go Panic 示例 2

输出

Calling x from main.
Executing x...
Calling y.
Executing y....
Printing in y 0
Executing y....
Printing in y 1
Executing y....
Printing in y 2
Executing y....
Panicking!
Defer in y 2
Defer in y 1
Defer in y 0
Recovered in x 3
Returned from x.

下一个主题Go 并发