美文网首页
golang错误处理优化

golang错误处理优化

作者: hewolf | 来源:发表于2020-01-19 15:13 被阅读0次

一般条件下golang的错误处理模式如下:

err := ...
if err != nil {
   //打印或者退出
}

这种模式可以打印出错误,但是很难查找错误的文件或者位置,可以写一个公用的检查错误函数处理,如下:

func CheckError(err error) bool {
    if err != nil {
        _, file, line, ok := runtime.Caller(1)
        if ok {
            emsg := fmt.Sprintf("file:%s, line:%d, error:%s", file, line, err.Error())
            logger.Print(emsg)
        } else {
            logger.Print(err)
        }
        return true
    }
    return false
}

runtime.Caller(1)可以查找错误文件地址和错误行号,那么以后进行错误处理可以如下:

err := ...
if CheckError(err) {
   //打印或者退出
}

这样以后一旦有错误问题马上就可以定位了

相关文章

网友评论

      本文标题:golang错误处理优化

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