Erreur de Golang et panique

The art of programing Il arrive souvent qu'il existe de nombreux blocs d'erreur dans la logique métier. Par exemple, appelez les fonctions suivantes dans l'ordre

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}

Comment écrire pour juger ** erreur ** Quelle? J'ai été ébloui. .. ..

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
}

Il y a beaucoup de gens plats dans le travail réel,

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
}

Maintenant, avec ** panique **,

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

Erreur de Golang et panique
exécution et erreur de pytube
Frontière entre C et Golang
Classification des erreurs (python3.x) et notes de débogage
Histoire d'erreur étrange et horrible de Python
pix2pix tensorflow2 Enregistrement d'essais et d'erreurs
[Golang] À propos du producteur et consommateur de langue Go