http://250bpm.com/blog:8
Point 1 [allegedly against C++]:
Verdict: Foolish, Ignorant and Appalling
With C, the raising of the error and handling it are tightly couped and reside at the same place in the source code. This makes it easy to understand what happens if error happens:
int rc = fx ();
if (rc != 0)
handle_error ();
With C++ you just throw the error. What happens then is not at all obvious:
int rc = fx ();
if (rc != 0)
throw std::exception ();
Correction: Both codes are Valid C++, the author is drunk on an expired drink (I think).