gpt4 book ai didi

go - 处理 defer 中的错误

转载 作者:行者123 更新时间:2023-12-04 11:44:10 25 4
gpt4 key购买 nike

我有一个函数可以打开数据库连接并返回它。或错误,如果发生了什么:

OpenDbConnection(connectionString string, logSql bool) (*gorm.DB, error) 

在这个函数中,我使用了记录器:
logger := zap.NewExample().Sugar()
defer logger.Sync()

方法 Sync()返回 error我忽略了这个错误。

在这种情况下最好的策略是什么?

我可以重写我的代码以避免 linter 错误,但我仍然忽略错误:
logger := zap.NewExample().Sugar()
defer func() {
_ = logger.Sync()
}()

我可以返回错误,但我有正确的数据库连接,我需要在调用函数中分析此错误以了解该怎么做。

最佳答案

您可以命名返回的错误变量并在函数内的任何位置进行初始化。

检查此测试代码 here

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

}

关于go - 处理 defer 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57740428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com