登录
首页 >  Golang >  Go问答

处理 defer 中的错误

来源:Golang技术栈

时间:2023-04-18 19:11:59 272浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《处理 defer 中的错误》,介绍一下golang,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

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

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()
}()

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

正确答案

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

在此处检查此测试代码

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 中的错误》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表