- 
                Notifications
    You must be signed in to change notification settings 
- Fork 4
workflow
        Michael Kenney edited this page Aug 14, 2018 
        ·
        7 revisions
      
    - 
start var errs errors.Err var err error 
- 
error occurs in come code somewhere err = someFunc() 
- 
capture and wrap the error to add context if nil != err { errs = errors.Wrap(err, 0, "the call to someFunc to do some particular work failed") } 
- 
do some more work, repeat // if someFunc failed do a thing if nil != err { errs = errors.Wrap(err, 0, "the call to someFunc while trying to do allTheWork failed") err = buidSome() if nil != err { errs = errors.Wrap(err, 0, "could not build 'some'") } } 
- 
return standard error func allTheStuff() error { var errs errors.Err var err error err = someFunc() // if someFunc failed do a thing if nil != err { errs = errors.Wrap(err, 0, "the call to someFunc while trying to do allTheWork failed") err = buidSome() if nil != err { errs = errors.Wrap(err, FailedToBuild, "could not build 'some'") } } return errs } 
- 
capture and handle func main() { errs := allTheStuff() for _, err := range errs.(errors.Err) { switch err.Err().(type) { case BuildErr: log.Fatalf("%+v", errs) } } log.Errorf("%+v", errs) } 
footer