go-errors icon indicating copy to clipboard operation
go-errors copied to clipboard

[Proposal] Wrap errors with no kind

Open erizocosmico opened this issue 6 years ago • 0 comments
trafficstars

Sometimes as we pass the error down the line we might want to annotate the error with more information and we don't want to check its type later. For these cases, Kind is an overkill, because you need to declare a kind and then use Wrap.

A Wrap top-level function could be nice for this use-case.

if err != nil {
    return nil, errors.Wrap(err, "couldn't get value at position %d", position)
}

Instead of:

var errCantGetValueAtPos = errors.NewKind("couldn't get value at position %d")

if err != nil {
    return nil, errCantGetValueAtPos.Wrap(err, position)
}

It enables having ad-hoc error messages just for adding info and reduces the amount of kinds that need to be declared.

Reference:

  • xerrors.Errorf in the new experimental errors package that is probably going into Go 1.13.

erizocosmico avatar Aug 02 '19 13:08 erizocosmico