《Golang学习笔记》error最佳实践

什么时候使用 panic, 什么时候使用 error?#

  1. 启动时,强依赖的服务有异常时 panic 退出
  2. 启动时,配置有明显不符合预期时 panic 退出
  3. 其余时候都不应该使用 panic,而需要使用 error
  4. 其次可以使用例如 Gin 框架中的默认 recovery 中间件预防 panic 退出
  5. 在程序运行中应避免使用野生 goroutine
    • 避免请求大导致大量 goroutine 创建
    • 异步任务应该由 worker 的形式进行创建 goroutine, 并使用 recovery 进行异常捕获避免导致主进程退出
      func Go(f func()){
        go func(){
            defer func(){
                if err := recover(); err != nil {
                    log.Printf("panic: %+v", err)
                }
            }()
            f()
        }()
      }
本作品采用《CC 协议》,转载必须注明作者和本文链接