go的异常处理panic/recover

Posted guotianbao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go的异常处理panic/recover相关的知识,希望对你有一定的参考价值。

go的异常处理panic/recover

Go语言中目前(Go1.12)是没有异常机制,但是使用panic/recover模式来处理错误。 panic可以在任何地方引发,但recover只有在defer调用的函数中有效

package main

import (
    "fmt"
)

func funcA() {
    fmt.Println("func A")
}

func funcB() {
    defer func() {
        err := recover()
        //如果程序出出现了panic错误,可以通过recover恢复过来
        if err != nil {
            fmt.Println("recover in B")
            fmt.Println(err)
        }
    }()
    panic("panic in B")
}

func funcC() {
    fmt.Println("func C")
}
func main() {
    funcA()
    funcB()
    funcC()
}
// func A
// recover in B
// panic in B
// func C

以上是关于go的异常处理panic/recover的主要内容,如果未能解决你的问题,请参考以下文章

Go语言的异常处理之errors,panic, recover

go defer,panic,recover详解 go 的异常处理

defer,panic,recover

go语言中使用deferpanicrecover处理异常

go 错误处理panic recover

go异常处理