On one side, it's 1000x better than the other error handling specs, at least it isn't going to turn code into unreadable, fragmented mess. On the other, Aston seems to have a point, it's just replacing one-liner... and it's not that great at all because with "if" you know what it's doing without reading the spec.
My point is it doesn't fix anything, it doesn't provide any clear benefit... it's an attempt to fix something which works great and is clearly not broken. So why complicate the language with a new keyword which has really no purpose. Maybe adding a warning about unhandled errors to VET would be better idea (which would probably be complicated to do properly, but at least it'll have some real, positive effect on code quality). W dniu wtorek, 2 lipca 2019 21:57:24 UTC+2 użytkownik Liam napisał: > > This proposal has attracted modest attention from the Go team... > https://github.com/golang/go/issues/32611 > > It suggests: > > err := f() > on err, <single_statement> > > on err, return err // any type can be tested for non-zero > on err, return fmt.Errorf(...) > > on err, fmt.Println(err) // doesn't stop the function > on err, continue // retry in a loop > > on err, goto label // labeled handler invocation > on err, hname // named handler invocation > > > > And offers these possible extensions: > > on err, os.IsNotExist(err): <stmt> > on err, err == io.EOF: <stmt> > on err, err.(*os.PathError): <stmt> // doesn't panic if not a match > > on err, <condition>: <stmt> > on err: <stmt> // this pair provides if/else in 2 lines > > on err := f(), <stmt> // for assignment with single lvalue > > > > Other punctuation is possible, e.g. on (err) <stmt> > > Now if we could just convince the Go gods to prototype this along with > try() in 1.14 :-) > -- 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/10352c41-6c98-46e0-9da3-15240d8cde08%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.