如果您有一個連接到資料庫並傳回連線或錯誤的函數,您可以使用 defer處理錯誤處理。但是,忽略記錄器的 Sync 方法傳回的錯誤並不是最佳實踐。
避免linter 錯誤而不抑制錯誤的一種方法是使用匿名函數,如下所示:
logger := zap.NewExample().Sugar() defer func() { _ = logger.Sync() }()
雖然此方法解決了linter 問題,但它沒有提供分析呼叫函數中傳回的錯誤的方法。
更可靠的解決方案是在函數內的任何位置初始化名為err 的錯誤變數並使用命名返回值:
func OpenDbConnection(connectionString string, logSql bool) (db *gorm.DB, err error) { logger := zap.NewExample().Sugar() defer func() { err = logger.Sync() }() // Some logic here return db, err }
此方法允許您捕獲錯誤並將其返回給呼叫函數,從而實現正確的錯誤分析。
以上是如何處理 Defer 回傳值中的錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!