go 异常打印

package main

import (
    "fmt"
    "runtime"
)

func f1() {
    fmt.Println("run f1")
}
func PrintStack() {
    var buf [4096]byte
    n := runtime.Stack(buf[:], false)
    fmt.Printf("==> %s\n", string(buf[:n]))
}

func f2() {
    fmt.Println("run f2")
   defer func(){
        err := recover()
        fmt.Println(err)
        PrintStack()
        fmt.Println("释放数据库连接...")
    }()
    a:=1
    b := 100/a
    panic("出现严重错误!")
    fmt.Println("run after"+string(b))
}
func f3() {
    fmt.Println("run f3")
}
func main() {
    f1()
    f2()
    f3()
}

猜你喜欢

转载自blog.csdn.net/csdn9990/article/details/112381827