205 lines · 5.3 KB · Go
RawDownload
package errors_test import (	"fmt" 	"github.com/pkg/errors") func ExampleNew() {	err := errors.New("whoops")	fmt.Println(err) 	// Output: whoops} func ExampleNew_printf() {	err := errors.New("whoops")	fmt.Printf("%+v", err) 	// Example output:	// whoops	// github.com/pkg/errors_test.ExampleNew_printf	//         /home/dfc/src/github.com/pkg/errors/example_test.go:17	// testing.runExample	//         /home/dfc/go/src/testing/example.go:114	// testing.RunExamples	//         /home/dfc/go/src/testing/example.go:38	// testing.(*M).Run	//         /home/dfc/go/src/testing/testing.go:744	// main.main	//         /github.com/pkg/errors/_test/_testmain.go:106	// runtime.main	//         /home/dfc/go/src/runtime/proc.go:183	// runtime.goexit	//         /home/dfc/go/src/runtime/asm_amd64.s:2059} func ExampleWithMessage() {	cause := errors.New("whoops")	err := errors.WithMessage(cause, "oh noes")	fmt.Println(err) 	// Output: oh noes: whoops} func ExampleWithStack() {	cause := errors.New("whoops")	err := errors.WithStack(cause)	fmt.Println(err) 	// Output: whoops} func ExampleWithStack_printf() {	cause := errors.New("whoops")	err := errors.WithStack(cause)	fmt.Printf("%+v", err) 	// Example Output:	// whoops	// github.com/pkg/errors_test.ExampleWithStack_printf	//         /home/fabstu/go/src/github.com/pkg/errors/example_test.go:55	// testing.runExample	//         /usr/lib/go/src/testing/example.go:114	// testing.RunExamples	//         /usr/lib/go/src/testing/example.go:38	// testing.(*M).Run	//         /usr/lib/go/src/testing/testing.go:744	// main.main	//         github.com/pkg/errors/_test/_testmain.go:106	// runtime.main	//         /usr/lib/go/src/runtime/proc.go:183	// runtime.goexit	//         /usr/lib/go/src/runtime/asm_amd64.s:2086	// github.com/pkg/errors_test.ExampleWithStack_printf	//         /home/fabstu/go/src/github.com/pkg/errors/example_test.go:56	// testing.runExample	//         /usr/lib/go/src/testing/example.go:114	// testing.RunExamples	//         /usr/lib/go/src/testing/example.go:38	// testing.(*M).Run	//         /usr/lib/go/src/testing/testing.go:744	// main.main	//         github.com/pkg/errors/_test/_testmain.go:106	// runtime.main	//         /usr/lib/go/src/runtime/proc.go:183	// runtime.goexit	//         /usr/lib/go/src/runtime/asm_amd64.s:2086} func ExampleWrap() {	cause := errors.New("whoops")	err := errors.Wrap(cause, "oh noes")	fmt.Println(err) 	// Output: oh noes: whoops} func fn() error {	e1 := errors.New("error")	e2 := errors.Wrap(e1, "inner")	e3 := errors.Wrap(e2, "middle")	return errors.Wrap(e3, "outer")} func ExampleCause() {	err := fn()	fmt.Println(err)	fmt.Println(errors.Cause(err)) 	// Output: outer: middle: inner: error	// error} func ExampleWrap_extended() {	err := fn()	fmt.Printf("%+v\n", err) 	// Example output:	// error	// github.com/pkg/errors_test.fn	//         /home/dfc/src/github.com/pkg/errors/example_test.go:47	// github.com/pkg/errors_test.ExampleCause_printf	//         /home/dfc/src/github.com/pkg/errors/example_test.go:63	// testing.runExample	//         /home/dfc/go/src/testing/example.go:114	// testing.RunExamples	//         /home/dfc/go/src/testing/example.go:38	// testing.(*M).Run	//         /home/dfc/go/src/testing/testing.go:744	// main.main	//         /github.com/pkg/errors/_test/_testmain.go:104	// runtime.main	//         /home/dfc/go/src/runtime/proc.go:183	// runtime.goexit	//         /home/dfc/go/src/runtime/asm_amd64.s:2059	// github.com/pkg/errors_test.fn	// 	  /home/dfc/src/github.com/pkg/errors/example_test.go:48: inner	// github.com/pkg/errors_test.fn	//        /home/dfc/src/github.com/pkg/errors/example_test.go:49: middle	// github.com/pkg/errors_test.fn	//      /home/dfc/src/github.com/pkg/errors/example_test.go:50: outer} func ExampleWrapf() {	cause := errors.New("whoops")	err := errors.Wrapf(cause, "oh noes #%d", 2)	fmt.Println(err) 	// Output: oh noes #2: whoops} func ExampleErrorf_extended() {	err := errors.Errorf("whoops: %s", "foo")	fmt.Printf("%+v", err) 	// Example output:	// whoops: foo	// github.com/pkg/errors_test.ExampleErrorf	//         /home/dfc/src/github.com/pkg/errors/example_test.go:101	// testing.runExample	//         /home/dfc/go/src/testing/example.go:114	// testing.RunExamples	//         /home/dfc/go/src/testing/example.go:38	// testing.(*M).Run	//         /home/dfc/go/src/testing/testing.go:744	// main.main	//         /github.com/pkg/errors/_test/_testmain.go:102	// runtime.main	//         /home/dfc/go/src/runtime/proc.go:183	// runtime.goexit	//         /home/dfc/go/src/runtime/asm_amd64.s:2059} func Example_stackTrace() {	type stackTracer interface {		StackTrace() errors.StackTrace	} 	err, ok := errors.Cause(fn()).(stackTracer)	if !ok {		panic("oops, err does not implement stackTracer")	} 	st := err.StackTrace()	fmt.Printf("%+v", st[0:2]) // top two frames 	// Example output:	// github.com/pkg/errors_test.fn	//	/home/dfc/src/github.com/pkg/errors/example_test.go:47	// github.com/pkg/errors_test.Example_stackTrace	//	/home/dfc/src/github.com/pkg/errors/example_test.go:127} func ExampleCause_printf() {	err := errors.Wrap(func() error {		return func() error {			return errors.Errorf("hello %s", fmt.Sprintf("world"))		}()	}(), "failed") 	fmt.Printf("%v", err) 	// Output: failed: hello world}