docs: Panic Recover 异常处理

This commit is contained in:
Shikong 2021-09-21 16:28:21 +08:00
parent 8a5fe71102
commit 9a0408f6cc

38
base/panic/main.go Normal file
View File

@ -0,0 +1,38 @@
package main
import (
"fmt"
)
func f1() {
fmt.Println("A")
}
func f2() {
// defer 在 panic 抛出之前执行
// defer 必须 在 可能引发 panic 的语句之前定义
defer func() {
fmt.Println("defer: 执行")
// 使用 recover 恢复执行
// 返回值为 nil 则无异常
err := recover()
if err != nil {
fmt.Println("recover:", err)
}
}()
// 抛出异常 程序退出
panic("抛出异常")
fmt.Println("B")
}
func f3() {
fmt.Println("C")
}
func main() {
f1()
f2()
f3()
}