一般条件下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) {
//打印或者退出
}
这样以后一旦有错误问题马上就可以定位了
有疑问加站长微信联系(非本文作者)