On Monday, July 1, 2019 at 3:12:24 AM UTC-4, Ian Lance Taylor wrote: > > Think about how you would write a basic Go construct like > https://godoc.org/golang.org/x/sync/errgroup if errors are handled via > exceptions. I'm not saying you can't do it--of course you can do it. > But it seems to me that it would require a bunch of awkward > boilerplate that would be easy to get wrong. >
That reminds me, I need to dust off CL 134395 <https://golang.org/cl/134395> (the change to make `errgroup` work with things like `(*testing.T).Fatal)`). As it turns out, we already have to deal with many of the same complexities that exceptions introduce, because `panic` is defined as a control-flow mechanism rather than an unambiguous programmer error, and is used as such in the `testing` and `fmt` packages (see also #28150 <https://golang.org/issue/28150>). It does indeed require a bunch of awkward boilerplate that is easy to get wrong. (See the `doubleDeferSandwich` function in that CL in particular.) -- 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/08bc1368-0d17-4cf7-a98c-21024e146183%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.