mirror of
https://github.com/pkg/errors.git
synced 2025-05-31 11:42:45 +00:00
Add Errorf (#14)
This commit is contained in:
parent
cd6e0b425d
commit
7a0abd8f63
13
errors.go
13
errors.go
@ -130,6 +130,19 @@ func (c cause) Error() string { return c.Message() + ": " + c.Cause().Error()
|
|||||||
func (c cause) Cause() error { return c.cause }
|
func (c cause) Cause() error { return c.cause }
|
||||||
func (c cause) Message() string { return c.message }
|
func (c cause) Message() string { return c.message }
|
||||||
|
|
||||||
|
// Errorf formats according to a format specifier and returns the string
|
||||||
|
// as a value that satisfies error.
|
||||||
|
func Errorf(format string, args ...interface{}) error {
|
||||||
|
pc, _, _, _ := runtime.Caller(1)
|
||||||
|
return struct {
|
||||||
|
error
|
||||||
|
location
|
||||||
|
}{
|
||||||
|
fmt.Errorf(format, args...),
|
||||||
|
location(pc),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Wrap returns an error annotating the cause with message.
|
// Wrap returns an error annotating the cause with message.
|
||||||
// If cause is nil, Wrap returns nil.
|
// If cause is nil, Wrap returns nil.
|
||||||
func Wrap(cause error, message string) error {
|
func Wrap(cause error, message string) error {
|
||||||
|
@ -170,3 +170,20 @@ func TestWrapf(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestErrorf(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
err error
|
||||||
|
want string
|
||||||
|
}{
|
||||||
|
{Errorf("read error without format specifiers"), "read error without format specifiers"},
|
||||||
|
{Errorf("read error with %d format specifier", 1), "read error with 1 format specifier"},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
got := tt.err.Error()
|
||||||
|
if got != tt.want {
|
||||||
|
t.Errorf("Errorf(%v): got: %q, want %q", tt.err, got, tt.want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -62,3 +62,10 @@ func ExampleWrapf() {
|
|||||||
|
|
||||||
// Output: oh noes #2: whoops
|
// Output: oh noes #2: whoops
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ExampleErrorf() {
|
||||||
|
err := errors.Errorf("whoops: %s", "foo")
|
||||||
|
errors.Fprint(os.Stdout, err)
|
||||||
|
|
||||||
|
// Output: github.com/pkg/errors/example_test.go:67: whoops: foo
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user