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.

Reply via email to