《Golang学习笔记》error最佳实践
什么时候使用panic,什么时候使用error?
- 启动时,强依赖的服务有异常时
panic
退出 - 启动时,配置有明显不符合预期时
panic
退出 - 其余时候都不应该使用
panic
,而需要使用error
- 其次可以使用例如
Gin
框架中的默认recovery
中间件预防panic
退出 - 在程序运行中应避免使用野生
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 协议》,转载必须注明作者和本文链接