CowboyRobot writes "Dobb's has an editorial on the problem of using return values and exceptions to handle errors. "But return values, even in the refined form found in Go, have a drawback that we've become so used to we tend to see past it: Code is cluttered with error-checking routines. Exceptions here provide greater readability: Within a single try block, I can see the various steps clearly, and skip over the various exception remedies in the catch statements. The error-handling clutter is in part moved to the end of the code thread."" Link to Original Source
If it happens once, it's a bug. If it happens twice, it's a feature.
If it happens more than twice, it's a design philosophy.