Go语言中的错误处理与日志记录
1. 从恐慌(Panic)中恢复
1.1 问题描述
当某个 goroutine 出现错误且无法继续执行,调用了 panic ,但你不希望整个程序停止运行。
1.2 解决方案
使用内置的 recover 函数来停止 panic ,不过该函数只能在延迟(defer)函数中使用。
1.3 示例代码
package main
import "fmt"
func A() {
defer fmt.Println("defer on A")
fmt.Println("A")
B()
fmt.Println("end of A")
}
func B() {
defer dontPanic()
fmt.Println("B")
C()
fmt.Println("end of B")
}
func C() {
defer fmt.Println("defer on C")
fmt.Println("C")
fmt.Println("end of C")
}
func main() {
defer fmt.Println("defer on main")
fmt.Println("main")
A()
fmt.Println("end of main")
}
func dontPanic() {
err := recove
超级会员免费看
订阅专栏 解锁全文
930

被折叠的 条评论
为什么被折叠?



