| >The fact that it compiles and runs but will behave in undesirable ways makes it even worse, not better! * Exceptions * Unstable API * Incorrect behavior Pick your poison. I know what I prefer. >But if your library that offers foo adds exceptions now I need to think about it at every single callsite You really don't. Like I said, it's kind of the whole point of exceptions. >In my 20+ years of professional C++ development I have a great experience not using exceptions and a strictly negative experience using them. Hence my recommendation to learn how to use them. I can replace "exceptions" with anything else (computers, diesel engines, HR people), and there's probably someone who holds that belief. That doesn't make it true. And GTFO with that No True Scotsman nonsense. That a tool can be misused doesn't delegitimize the tool. If you saw someone using classes instead of namespaces you wouldn't conclude classes are bad, you'd call that person a knobhead. |
No, this is actually just wrong. With exceptions you “don’t have to think about” the exception getting caught by some higher level catch.
But you do have to think about it in the sense that every single line in your code could unwind. Which makes ensuring you remain in a valid state more difficult.
One of the issues with exceptions isn’t the throw. It’s what do you do after you catch.
> That a tool can be misused doesn't delegitimize the tool.
I’m always open to the possibility that if something I’ve seen has been bad 100 times then on the 101st it might be good. But at some point you really just have to call a spade a spade.