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