Out of curiosity, what's an actual example of code
where the execution flow
of exceptions is significantly more surprising than the execution flow of a
billion manual checks to avoid "Fatal error: Call to a member function
foo() on a non-object"?
I've heard the vague claim that exceptions are confusing for years, but for
the life of me I've never seen exception-handling code that looked more
complex or confusing than code riddled with checks for magic return values.
My experience has been similar. I personally prefer exceptions as they at least let me
know in a highly visible way when I forget to do something about them, unlike magic return
values which may cause problems which do not surface right away if a check is forgotten.
Thank you,
Derric Atzrott