如果您有一个连接到数据库并返回连接或错误的函数,您可以使用 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中文网其他相关文章!