If you really want to understand error handling in C++, it's a good idea to understand how it came about—as a response to the problems of error handling techniques in C. The common C techniques are to report the error via a return value, bail with an abort() or exit() command, return an error indicator, or jump to an error handler. Dan Saks lays out the problems with each of these techniques.