unknwon / goconfig

Package goconfig is a fully functional and comments-support configuration file (.ini) parser.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LoadConfigFile 在 read 错误时不会执行 f.Close()

busyStone opened this issue · comments

func LoadConfigFile(fileName string, moreFiles ...string) (c *ConfigFile, err error) {
// Append files' name together.
fileNames := make([]string, 1, len(moreFiles)+1)
fileNames[0] = fileName
if len(moreFiles) > 0 {
fileNames = append(fileNames, moreFiles...)
}

    c = newConfigFile(fileNames)

    for _, name := range fileNames {
            f, err := os.Open(name)
            if err != nil {
                    return nil, err
            }

            if err = c.read(f); err != nil {
                    return nil, err
            }

            if err = f.Close(); err != nil {
                    return nil, err
            }
    }

    return c, nil

}

如上 在

if err = c.read(f); err != nil {
return nil, err
}
发生错误时就不会执行以下语句了吧

if err = f.Close(); err != nil {
return nil, err
}

确实!多谢提出,立马修改!