mirror of
https://gitee.com/shikong-sk/golang-study
synced 2025-02-23 23:42:15 +08:00
39 lines
515 B
Go
39 lines
515 B
Go
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()
|
|
}
|