I have a function which open db connection and return it. Or error, if something happened:
OpenDbConnection(connectionString string, logSql bool) (*gorm.DB, error)
In this function I am using logger:
logger := zap.NewExample().Sugar()
defer logger.Sync()
Method Sync()
returns error
and I am ignoring this error.
What is the best strategy in this case ?
I can rewrite my code to avoid linter error, but I am still ignore error:
logger := zap.NewExample().Sugar()
defer func() {
_ = logger.Sync()
}()
I can return error, but I am have correct db connection and I need to analyze this error in the calling function to understand what to do.
You can name your returning error variable and initialize anywhere inside the function.
check this test code 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
}