Golang Fehler und Panik

The art of programing Es ist häufig der Fall, dass die Geschäftslogik viele Fehlerblöcke enthält. Rufen Sie beispielsweise die folgenden Funktionen nacheinander auf

func first() error {return nil}
func second() error {return nil}
func third() error {return nil}
func fourth() error {return nil}
func fifth() error {return nil}

Wie schreibe ich, um ** Fehler ** zu beurteilen Was? Ich war geblendet. .. ..

func Do() error {
    var err error
    if err = first(); err == nil {
        if err = second(); err == nil {
            if err = third(); err == nil {
                if err = fourth(); err == nil {
                    if err = fifth(); err == nil {
                        return nil
                    }
                }
            }
        }
    }
    return err
}

Es gibt viele flache Leute in der eigentlichen Arbeit,

func Do() error {
    var err error
    if err = first(); err != nil {
        return err
    }
    if err = second(); err != nil {
        return err
    }
    if err = third(); err != nil {
        return err
    }
    if err = fourth(); err != nil {
        return err
    }
    if err = fifth(); err != nil {
        return err
    }
    return nil
}

Nun, mit ** Panik **,

func Do2() (err error) {
    defer func(){
        if r:= recover() ; r!= nil{
            err = fmt.Errorf("Error: %+v", r)
        }
    }()
    first2()
    second2()
    third2()
    fourth2()
    fifth2()
    return
}

Recommended Posts

Golang Fehler und Panik
pytube Ausführung und Fehler
Grenze zwischen C und Golang
Fehlerklassifizierung (python3.x) und Debugging-Hinweise
Seltsame und schreckliche Python-Fehlergeschichte
pix2pix tensorflow2 Aufzeichnung von Versuch und Irrtum
[Golang] Über Go-Sprache Produzent und Konsument