golang处理异常之panic,recover, exit status1

golang语言对错误的处理只有Panic和Recover.

go中可以抛出一个panic的异常,然后在defer中通过recover捕获这个异常,然后正常处理

在一个主进程,多个go程处理逻辑的结构中,这个很重要,如果不用recover捕获panic异常,会导致整个进程出错中断

 

在写程序时,如果不进行处理就会一级一级向上抛出异常直到程序崩溃退出。

如何使用这两个方法处理异常呢?

我们可以定义个函数,在需要检测错误的地方引用 一下:

func CheckErr(err error) {
       if err != nil {
              panic(err)
       }
}
func demo( sourcefile string)  {
       defer func() {
              if x := recover(); x != nil {
                     fmt.Println(x)
              }
       }()
       
       _, err := ioutil.ReadFile(sourcefile)
       CheckErr(err)
}

总结就是在需要处理错误的方法里,panic抛出异常,recover接住异常。

还有一种是exit status 1,这个时候要看下是否用了log函数。

logger.Panic

logger.Fatal 会抛出这个异常。

 

打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注