forked from creasty/apperrors
-
Notifications
You must be signed in to change notification settings - Fork 1
New(), Errorf() with Annotators #23
Copy link
Copy link
Open
Description
Now, annotators cannot be added when generating new error.
If we want to generate new error with annotations, we have to do like following.
fail.Wrap(fail.New("hoge"), fail.WithCode(400))So, I want you to be able to attach annotations with fail.New() and fail.Errorf(), or create another methods.
func New(text string, annotators ...Annotator) error {
err := &Error{Err: errors.New(text)}
withStackTrace(0)(err)
for _, f := range annotators {
f(err)
}
return err
}
func Errorf(format string, args ...interface{}) error {
var fmtArgs []interface{}
var annotators []Annotator
for _, arg := range args {
antt, ok := arg.(Annotator)
if ok {
annotators = append(annotators, antt)
} else {
fmtArgs = append(fmtArgs, arg)
}
}
err := &Error{Err: fmt.Errorf(format, fmtArgs...)}
withStackTrace(0)(err)
for _, f := range annotators {
f(err)
}
return err
}Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels