3 ms·
Honestly, this is so much worse than "catch". It's what a "catch" would look like in "C".
by adontz 2y ago
Honestly, this is so much worse than "catch". It's what a "catch" would look like in "C".
- hambes 2y agoIt might look worse than catch, but it's much more predictable and less goto-y.
- guappa 2y agogoto was only bad when used to save code and jump indiscriminately. To handle errors is no problem at all.
- froh 2y agoyes, yes, yes! see the Linux Kernel for plenty of such good and readable uses of go-to, considered useful: "on error, jump there in the cleanup sequence ..."
- _flux 2y ago..as long as you don't make mistakes. I fixed enough goto bugs in Xorg when I was fixing Coverity-issues in Xorg that I can see the downsides of this easy way of error handling.
- guappa 2y agoWe're comparing to go here, not with a language with proper error handling.
- int_19h 2y agoIf "catch" is goto-y (and it kinda is), then so is "defer".
- kbolino 2y agoThe biggest difference between try-catch and error values syntactically IMO is that the former allows you to handle a specific type of error from an unspecified place and the latter allows you to handle an unspecified type of error from a specific place. So the type checking is more cumbersome with error values whereas enclosing every individual source of exceptions in its own try-catch block is more cumbersome than error values. You usually don't do that, but you usually don't type-check error values either.