You can write such a function yourself. For that reason and since it would be rarely useful, I don't think it's likely to become part of the standard library.
On Thursday, April 1, 2021 at 9:02:34 AM UTC-4 Michael Schaller wrote: > Roger, I think you slightly misunderstood me. ;-) > > It is true that `As` and `Is` methods can be used to allow `errors.As` and > `errors.Is` to handle error types that aren't actually in the error chain. > > However my question was if an `errors.Chain` function which returns > details about the error types and values in the error chain would be a > worthwhile addition to Go's `errors` package. > > On Wednesday, March 31, 2021 at 7:33:32 PM UTC+2 rog wrote: > >> On Wed, 31 Mar 2021 at 18:05, 'Michael Schaller' via golang-nuts < >> golan...@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...@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/8bd84b0b-2633-4d2e-8628-a23712e18122n%40googlegroups.com.