Package multierr allows combining one or more errors together.
Errors can be combined with the use of the Combine function.
If only two errors are being combined, the Append function may be used
The underlying list of errors for a returned error object may be retrieved
with the Errors function.
You sometimes need to append into an error from a loop.
Cases like this may require knowledge of whether an individual instance
failed. This usually requires introduction of a new variable.
multierr includes AppendInto to simplify cases like this.
This will append the error into the err variable, and return true if that
individual error was non-nil.
See AppendInto for more information.
Go makes it possible to modify the return value of a function in a defer
block if the function was using named returns. This makes it possible to
record resource cleanup failures from deferred blocks.
multierr provides the Invoker type and AppendInvoke function to make cases
like the above simpler and obviate the need for a closure. The following is
roughly equivalent to the example above.
See AppendInvoke and Invoker for more information.
Errors returned by Combine and Append MAY implement the following
Note that if you need access to list of errors behind a multierr error, you
should prefer using the Errors function. That said, if you need cheap
read-only access to the underlying errors slice, you can attempt to cast
the error to this interface. You MUST handle the failure case gracefully
because errors returned by Combine and Append are not guaranteed to
implement this interface.