Pull to refresh
0
0
Fedir RYKHTIK@FeoFR

CTO

Send message
На мой взгляд, в существующей модели обработки ошибок проблем нет.

Псевдокод, указанный в примере кажется избыточным. В реальности же, ошибки могут быть самыми разными, и сообщения и операции будут персонализированны.

func CopyFile(src, dst string) error {
    r, err := os.Open(src)
    if err != nil {
        return fmt.Errorf("copy %s %s: %v", src, dst, err)
    }
    defer r.Close()

    w, err := os.Create(dst)
    if err != nil {
        return fmt.Errorf("copy %s %s: %v", src, dst, err)
    }

    if _, err := io.Copy(w, r); err != nil {
        w.Close()
        os.Remove(dst)
        return fmt.Errorf("copy %s %s: %v", src, dst, err)
    }

    if err := w.Close(); err != nil {
        os.Remove(dst)
        return fmt.Errorf("copy %s %s: %v", src, dst, err)
    }
}


«Индустриализация» обработки ошибок, методами, подобными «check» не уместна и только усложнит читабельность и поддержку кода.

Information

Rating
Does not participate
Location
Toulon, Var, Франция
Registered
Activity