LoadConfigFile 在 read 错误时不会执行 f.Close()
busyStone opened this issue · comments
busyStone commented
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
}
Joe Chen commented
确实!多谢提出,立马修改!