《Golang學習筆記》error最佳實踐

WZY發表於2021-08-06

什麼時候使用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 協議》,轉載必須註明作者和本文連結

相關文章