xdefer
Package xdefer
implements an extremely useful function, Errorf
, to annotate all errors returned from a function transparently.
Install
go get oss.terrastruct.com/xdefer
Usage
Your code without xdefer
:
func MyFunc() (err error) {
err := doA()
if err != nil {
return fmt.Errorf("failed at MyFunc: %w", err)
}
err = doB()
if err != nil {
return fmt.Errorf("failed at MyFunc: %w", err)
}
...
}
Your code with xdefer
:
func MyFunc() (err error) {
defer xdefer.Errorf(&err, "failed at MyFunc")
err := doA()
if err != nil {
return err
}
err = doB()
if err != nil {
return err
}
}