Aller au contenu

Ignored Error Return (ARCH5152)

Ce contenu n’est pas encore disponible dans votre langue.

Key go.logging.ignored-error-return · Severity error · Category logging

In Go, an error is a returned value. Assigning an error return to the blank identifier (_) or never checking it lets failures pass silently - the language-native analogue of a swallowed catch.

func save(path string, data []byte) {
f, _ := os.Create(path)
f.Write(data)
f.Close()
}
func save(path string, data []byte) error {
f, err := os.Create(path)
if err != nil {
return fmt.Errorf("create %s: %w", path, err)
}
defer f.Close()
if _, err := f.Write(data); err != nil {
return fmt.Errorf("write %s: %w", path, err)
}
return nil
}

Check every error return and propagate it wrapped to the caller; never silence it with _.