diff options
Diffstat (limited to 'dependencies/pkg/mod/golang.org/x/xerrors@v0.0.0-20220907171357-04be3eba64a2/example_FormatError_test.go')
-rw-r--r-- | dependencies/pkg/mod/golang.org/x/xerrors@v0.0.0-20220907171357-04be3eba64a2/example_FormatError_test.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/dependencies/pkg/mod/golang.org/x/xerrors@v0.0.0-20220907171357-04be3eba64a2/example_FormatError_test.go b/dependencies/pkg/mod/golang.org/x/xerrors@v0.0.0-20220907171357-04be3eba64a2/example_FormatError_test.go new file mode 100644 index 0000000..3e712c9 --- /dev/null +++ b/dependencies/pkg/mod/golang.org/x/xerrors@v0.0.0-20220907171357-04be3eba64a2/example_FormatError_test.go @@ -0,0 +1,39 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package xerrors_test + +import ( + "fmt" + + "golang.org/x/xerrors" +) + +type MyError2 struct { + Message string + frame xerrors.Frame +} + +func (m *MyError2) Error() string { + return m.Message +} + +func (m *MyError2) Format(f fmt.State, c rune) { // implements fmt.Formatter + xerrors.FormatError(m, f, c) +} + +func (m *MyError2) FormatError(p xerrors.Printer) error { // implements xerrors.Formatter + p.Print(m.Message) + if p.Detail() { + m.frame.Format(p) + } + return nil +} + +func ExampleFormatError() { + err := &MyError2{Message: "oops", frame: xerrors.Caller(1)} + fmt.Printf("%v\n", err) + fmt.Println() + fmt.Printf("%+v\n", err) +} |