美文网首页
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