Documentation ¶
Index ¶
- func Details(err error) []interface{}
- func DetailsMap(err error) map[string]interface{}
- func Flatten(err error) error
- func ListFormatFunc(es []error) string
- func Prefix(err error, prefix string) error
- func SimpleFormatFunc(es []error) string
- type Error
- func (e *Error) Annotate(details ...interface{}) *Error
- func (e *Error) Error() string
- func (e *Error) ErrorOrNil() error
- func (e *Error) GoString() string
- func (err Error) Len() int
- func (err Error) Less(i, j int) bool
- func (err Error) Swap(i, j int)
- func (e *Error) Unwrap() error
- func (e *Error) WrappedErrors() []error
- type ErrorFormatFunc
- type ErrorWithOrigin
- type Group
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Details ¶ added in v1.0.5
func Details(err error) []interface{}
Details returns additional details, provided to the Error by means of Annotate.
This function is not thread safe, internal slice used to store details is not mutex guarder.
func DetailsMap ¶ added in v1.0.5
DetailsMap returns additional details, provided to the Error by means of Annotate. The function creates a new map[string]interface{}, and copies data from internal slice to the map (overhead).
This function is not thread safe, internal slice used to store details is not mutex guarder.
func ListFormatFunc ¶
ListFormatFunc is a basic formatter that outputs the number of errors that occurred along with a bullet point list of the errors.
func Prefix ¶
Prefix is a helper function that will prefix some text to the given error. If the error is a multierror.Error, then it will be prefixed to each wrapped error.
This is useful to use when appending multiple multierrors together in order to give better scoping.
func SimpleFormatFunc ¶ added in v1.0.5
SimpleFormatFunc is a basic formatter that outputs the number of errors that occurred along with a bullet point list of the errors. If only one error is present, it will be printed "as is", without the number of errors.
Types ¶
type Error ¶
type Error struct { Errors []error // slice of errors which are part of this error ErrorFormat ErrorFormatFunc // the function which outputs this error // contains filtered or unexported fields }
Error is an error type to track multiple errors. This is used to accumulate errors in cases and return them as a single "error".
func Annotate ¶ added in v1.0.5
Annotate returns an Error with additional fields provided to this function. These fields can later be accessed by use of Details(error) If the error provided as first parameter is nil, returns nil.
This function is not thread safe, internal slice used to store details is not mutex guarded.
func Append ¶
Append is a helper function that will append more errors onto an Error in order to create a larger multi-error.
If err is not a multierror.Error, then it will be turned into one. If any of the errs are multierr.Error, they will be flattened one level into err. Any nil errors within errs will be ignored. If err is nil, a new *Error will be returned.
func NewError ¶ added in v1.0.5
NewError returns an error, with formatting function set to DefaultFormatFunc.
func (*Error) Annotate ¶ added in v1.0.5
Annotate adds additional details to the error. These details are stored in an internal slice, and can Details(error), or DetailsMap(error).
The function returns its own receiver.
func (*Error) ErrorOrNil ¶
ErrorOrNil returns an error interface if this Error represents a list of errors, or returns nil if the list of errors is empty. This function is useful at the end of accumulation to make sure that the value returned represents the existence of errors.
func (*Error) Unwrap ¶
Unwrap returns an error from Error (or nil if there are no errors). This error returned will further support Unwrap to get the next error, etc. The order will match the order of Errors in the multierror.Error at the time of calling.
The resulting error supports errors.As/Is/Unwrap so you can continue to use the stdlib errors package to introspect further.
This will perform a shallow copy of the errors slice. Any errors appended to this error after calling Unwrap will not be available until a new Unwrap is called on the multierror.Error.
func (*Error) WrappedErrors ¶
WrappedErrors returns the list of errors that this Error is wrapping. It is an implementation of the errwrap.Wrapper interface so that multierror.Error can be used with that library.
This method is not safe to be called concurrently and is no different than accessing the Errors field directly. It is implemented only to satisfy the errwrap.Wrapper interface.
type ErrorFormatFunc ¶
ErrorFormatFunc is a function callback that is called by Error to turn the list of errors into a string.
var DefaultFormatFunc ErrorFormatFunc = SimpleFormatFunc
DefaultFormatFunc is the format function, which is bound to any new Error created by this package.
type ErrorWithOrigin ¶
type ErrorWithOrigin struct {
// contains filtered or unexported fields
}
ErrorWithOrigin is an error which contains basic stack trace information
func E ¶
func E(msg string) ErrorWithOrigin
E returns an error derived from string (msg), with additional information about the origin.
func New ¶
func New(err error) ErrorWithOrigin
New returns an error with additional information about the origin.
func (ErrorWithOrigin) Error ¶
func (e ErrorWithOrigin) Error() string
Error implements the error interface
func (ErrorWithOrigin) WithOperation ¶
func (e ErrorWithOrigin) WithOperation(opr string) ErrorWithOrigin
WithOperation returns copy of the error, with operation information attached. If both WithOperation and WithSubject are called from the same original line, metadata about the error are joined.
func (ErrorWithOrigin) WithSubject ¶
func (e ErrorWithOrigin) WithSubject(sub string) ErrorWithOrigin
WithSubject returns copy of the error, with subject information attached. If both WithOperation and WithSubject are called from the same original line, metadata about the error are joined.
type Group ¶
type Group struct {
// contains filtered or unexported fields
}
Group is a collection of goroutines which return errors that need to be coalesced.