Another idea, if we use blank identifier for errors then throws statement catch these with caller function name.
func printSum(a, b, c string) error { throws func(caller string, err error) { fmt.Println("caller:", caller, err) return err }() x, _ := strconv.Atoi(a) y, _ := strconv.Atoi(b) z, err := strconv.Atoi(c) if err != nil { return err } fmt.Println("result:", x + y + z) return nil } How is sound? Semih. On Sunday, 2 August 2020 at 11:44:43 UTC+3 Denis Cheremisov wrote: > There are two major issues with Go error handling: > > > 1. It is not strict enough, i.e. the compiler cannot ensure error check > 2. It is not consistent enough. > > In the first you can easily ignore an error and the compiler will let you > go further. In the second, you can both > > *if err := doSomething(); err != nil {* > *}* > > and > > *v, err := returnSomething()* > *if err != nil {* > *}* > > *or err* would do this better for sure > > *doSomething() or err {* > *}* > > and > > *v := returnSomething() or err {* > *}* > > воскресенье, 2 августа 2020 г. в 03:55:59 UTC+3, skinne...@gmail.com: > >> I do not consider error handling an issue but then again I tend to either >> use the Doit() err{} or MustDoit(){} panic and then use DI (dependency >> injection implemented by interface) for error-handling so that I can get an >> email when we get a new error. So then it would be >> MustDoit(errorHandler("ConIo")){} >> >> Actually I suppose it is an issue, I do not do error handling in Go, but >> my preprocessor converts it to Go. Go error handling can do anything, the >> implementation may not be clear and that may be the real problem. We can >> change it by improving the language or by training programmers on >> recognizing useful abstractions, may need both. >> >> >> On Saturday, August 1, 2020 at 1:31:54 PM UTC-5 Ian Lance Taylor wrote: >> >>> On Sat, Aug 1, 2020 at 10:59 AM <lgo...@gmail.com> wrote: >>> > >>> > Has anyone ever tallied the number of different forum threads related >>> to changing Go error handling ? >>> > The current method is obviously a vexing issue to many Go users, and >>> > It seems silly that this issue has never been resolved by the Go team >>> beyond maintaining the status quo... despite, IMHO, several good >>> alternatives that have been suggested on this very forum. >>> >>> There have been many alternatives suggested, but none of them have >>> been clearly better. >>> >>> I recently wrote a brief overview at https://golang.org/issue/40432. >>> >>> Ian >>> >> -- 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/d4db0d43-3935-4d3e-8f93-ab4852fda8d1n%40googlegroups.com.