On Wed, 31 Mar 2021 at 18:05, 'Michael Schaller' via golang-nuts < golang-nuts@googlegroups.com> wrote:
> Hi everyone, > > I often encounter deep error chains where errors are wrapped across > several Go packages and that makes it often hard to find a usable error > type to use with `errors.As` or `errors.Is`. > > Could it make sense to add an `errors.Chain` function to Go that returns a > slice with tuples of error type (reflect.Type) and the respective error? > Unfortunately that's not possible in general because errors in the change can implement their own `As` and `Is` methods, so an error can appear to have some type T in the chain (i.e. errors.As(new(T)) returns true) without *actually *having that type in the chain. For example: https://play.golang.org/p/-IAKMrD8FlG It's a shame in my view, but that's what we've got. cheers, rog. > Quick example: > https://play.golang.org/p/hDW0_6P7O2Y > > Best, > > Michael > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/acab291d-21bc-4c84-a19a-7f9901cc8035n%40googlegroups.com > <https://groups.google.com/d/msgid/golang-nuts/acab291d-21bc-4c84-a19a-7f9901cc8035n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAJhgach3A0WbsbJ57CAnsGusV4OnwmLE1xWh1mJySDvzp%3DfpTA%40mail.gmail.com.