美文网首页
go 打印日志,fatal 及 panic

go 打印日志,fatal 及 panic

作者: 智勇双全的小六 | 来源:发表于2018-06-28 21:08 被阅读0次
    1. 直接退出
    log.Fatal("xxx")
    
    1. 引发异常,并退出
      这个 panic 可以类比 python 中的 raise、java 中的 throw, 这样抛出的异常是一个堆栈信息,能够追溯代码错误的位置,这个在使用时我用着更顺手
    log.Panic("xxx")
    

    恢复 panic 引发的异常使用 recover

    func main(){
        var s sync.WaitGroup
        for i:=0;i<10;i++{
            s.Add(1)
            go func(i int){
                defer func(){
                    if err := recover();err!=nil{
                        log.Println("this is error",err)
                    }
                    s.Done()
                    log.Println(i,"is over")
                }()
                log.Panic(i,"i want panic")
            }(i)
        }
        s.Wait()
    }
    

    但是需要注意,recover 之后并不会打印 panic 的堆栈信息。

    相关文章

      网友评论

          本文标题:go 打印日志,fatal 及 panic

          本文链接:https://www.haomeiwen.com/subject/heinyftx.html