This looks like something I might have done. However, my preference would be to write a wrapper MustGetParameter receives string field, calls store.GetParameter(field), returns parameter or panics.
You may then use defer func() { globalErr = recover()} tenantID, err1 := MustGetParameter("TENANT_ID") clientID, err2 := MustGetParameter("CLIENT_ID") clientSecret, err3 := MustGetParameter("CLIENT_SECRET") return connection{ tenantID, clientID, clientSecret, }, globalErr If an error can be handled, it should be handled, but if you are just cascading the reports of errors, use defer recover as a try and let the calling function handle it. Of course some panics really should be a panic so you might want to have your defer func check the panic error to see if it is expected or something that really is a panic. When I do an API I may have a Doit and a MustDoit, one returns an error and the other panics. My way of keeping the code clean unless I can actually do something about the error. On Wednesday, October 7, 2020 at 1:36:07 PM UTC-5 johan.ma...@dexyos.fr wrote: > Hi, I'm looking for thoughts from some experienced go programmers on a > technique to reduce error handling verbosity. > > The basic idea is to be optimistic over a few instructions, and then > combine many errors in to one. This gist and explains the idea (note the > absence of if err != nil {} ) > > tenantID, err1 := store.GetParameter("TENANT_ID") > clientID, err2 := store.GetParameter("CLIENT_ID") > clientSecret, err3 := store.GetParameter("CLIENT_SECRET") > > globalErr := multierr.Combine(err1, err2, err3) > return connection{ > tenantID, > clientID, > clientSecret, > }, globalErr > > There's some more detail in a post > http://martinsson-johan.blogspot.com/2020/10/less-error-handling-noice-in-go.html. > > I'm sure someone else has already proposed this, but I wasn't able to find > it. Grateful for pointers > > While it seems sound to me I'm a very interested in what people from the > community thinks. > > Cheers > Johan Martinsson > > -- 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/73e712c2-948b-459f-8c07-6e201a8f6454n%40googlegroups.com.