Skip to content

Instantly share code, notes, and snippets.

@maxwellgithinji
Created July 30, 2020 13:41
Show Gist options
  • Save maxwellgithinji/934720950a677aecfc61ff50ab06765d to your computer and use it in GitHub Desktop.
Save maxwellgithinji/934720950a677aecfc61ff50ab06765d to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"errors"
)
func cat() error {
return errors.New("cat is an error")
}
func moo() error {
return fmt.Errorf("moo is an error: %w", cat())
}
func bar() error {
return fmt.Errorf("bar is an error: %w", moo())
}
func foo() error {
return fmt.Errorf("foo is an error: %w", bar())
}
func main() {
err := foo()
fmt.Println(err)
baseErr := errors.Unwrap(err)
fmt.Println(baseErr)
baseErr = errors.Unwrap(baseErr)
fmt.Println(baseErr)
baseErr = errors.Unwrap(baseErr)
fmt.Println(baseErr)
baseErr = errors.Unwrap(baseErr)
fmt.Println(baseErr)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment