普通方式和 recover 就不补充了,直接百度格式就可以。
现在补充一点当不能明确报出错误的行数的情况下如何去处理错误。
使用debug.PrintStack() 打印信息,然后根据信息处理错误。
在使用http 接口的时候碰到返回错误 但是不知道错误在哪一行的时候可以使用这种方式。
package main
import (
"runtime/debug"
)
func main() {
defer func() {
if err := recover(); err != nil {
debug.PrintStack()
}
}()
//其他代码...
}
-race 参数来对系统goroutine的竞争情况进行检测
Introducing the Go Race Detector
我们可以使用go run -race 文件名
或者 go build -race 文件名
来进行竞争检测
其他待补充。。。