《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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!