errors icon indicating copy to clipboard operation
errors copied to clipboard

%+v is too verbose

Open tebeka opened this issue 5 years ago • 0 comments

When printing error which have causes with %+v verb, you'll get the stack trace several times.

main.go

package main

import (
	"fmt"

	"github.com/friendsofgo/errors"
)

func a() error {
	return errors.Errorf("a")
}

func b() error {
	err := a()
	return errors.Wrap(err, "b")
}

func c() error {
	err := b()
	return errors.Wrap(err, "c")
}

func main() {
	err := c()
	fmt.Printf("%+v\n", err)
}

Running

$ go run main.go
a
main.a
	/tmp/pe/main.go:10
main.b
	/tmp/pe/main.go:14
main.c
	/tmp/pe/main.go:19
main.main
	/tmp/pe/main.go:24
runtime.main
	/opt/go/src/runtime/proc.go:203
runtime.goexit
	/opt/go/src/runtime/asm_amd64.s:1357
b
main.b
	/tmp/pe/main.go:15
main.c
	/tmp/pe/main.go:19
main.main
	/tmp/pe/main.go:24
runtime.main
	/opt/go/src/runtime/proc.go:203
runtime.goexit
	/opt/go/src/runtime/asm_amd64.s:1357
c
main.c
	/tmp/pe/main.go:20
main.main
	/tmp/pe/main.go:24
runtime.main
	/opt/go/src/runtime/proc.go:203
runtime.goexit
	/opt/go/src/runtime/asm_amd64.s:1357

tebeka avatar Feb 23 '20 18:02 tebeka