We don't use exceptions for the reasons described in the article (and many others), we use boost::system::error_code instead.
But that's for the first half of the article, and the OP admits that he simply gave up on exceptions.
As for the part about half-initialized state, I think the problem is that the author is trying to do OOP in C++ without exceptions. Perhaps a more generic programming approach would solve his "half initialized problem".
Don't want to sound like a snob, but it really looks more like a design problem than a language problem.