Forked from https://github.com/pkg/errors
go1.7+ required
package main
import (
stderrors "errors"
"fmt"
"github.com/manmanxing/errors"
)
func main() {
err := test3()
if err != nil {
fmt.Println(errors.String(err))
return
}
}
func test1() error {
return errors.Wrap(stderrors.New("original message"), "test1 wrap message")
}
func test2() error {
err := test1()
if err != nil {
return err
}
return nil
}
func test3() error {
err := test2()
if err != nil {
return err
}
return nil
}The result is:
$ go run main.go
test1 wrap message: original message
main.test1
awesomeProject/api/main.go:19
main.test2
awesomeProject/api/main.go:23
main.test3
awesomeProject/api/main.go:31
main.main
awesomeProject/api/main.go:11