Actually I like exception handling even less than C-style goto; when
an exception comes, in the middle of any routine you jump scope
practically at/to a random point or circumstance and start executing
code in a sequence that the programmer couldn't really have intended.
It violates the designed control flow and is therefore evil. At least
a C-style goto scope is limited to a single subroutine. Exceptions
actually jump scope between routines. What are they thinking???
No, I prefer to get status codes and write explicit error handlers
where they make sense. Now true exceptions like a divide-by-zero,
well, I can see having exception handlers for that. But for the modern
usage of sending error codes? Horrible.
I do use goto in specific, limited ways. For example, to enter a loop
just after the top (useful in printing comma separated lists, for
example without use of a flag variable), or common exit/cleanup
handlers.
All computer scientists have ever proved is that you could get by
without goto. They jumped to an unwarranted conclusion when they
decided it should never be used.
-- John.